Optimization of basic algorithms in Commutative Algebra

PhD. Thesis

Massimo Caboara Università degli Studi di Pisa Dipartimento di Matematica

VIII Ciclo

29 May 1998

Contents

Introduction iii

1 Computational rings and modules 1

1.1 Graded Rings and Modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.1.1 Graded rings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.1.2 Graded modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.1.3 Graded morphisms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.1.4 Shifts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.1.5 Some results for graded rings/modules . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.1.6 Effective graduations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.2 Ring orderings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 1.2.1 Some interesting orderings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 1.2.2 Semi flags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 1.2.3 Finding orderings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

1.3 Module implementation and orderings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 1.3.1 Module implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 1.3.2 Module orderings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 1.3.3 Some interesting module term-orderings classes . . . . . . . . . . . . . . . . . . . . 18

1.4 Hilbert Functions and Poincaré series . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 1.4.1 Main formula . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 1.4.2 M-regular sequences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 1.4.3 Some useful formula . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 1.4.4 Dimension and multiplicity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

2 Gröbner Bases 27

2.1 Gröbner bases and Buchberger algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

2.1.1 Buchberger algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 2.2 Homogeneous Gröbner bases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

2.2.1 The homogeneous Buchberger algorithm . . . . . . . . . . . . . . . . . . . . . . . . 31 2.3 Module Gröbner bases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 2.4 Factorizing Gröbner . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 2.5 Hilbert-Driven Buchberger Algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 2.6 Bi-Hilbert-Driven Buchberger Algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

2.6.1 The Bi-Hilbert-Driven algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 2.6.2 Some statistics for the Hilbert-Driven and Bi-Hilbert-Driven algorithms . . . . . . 43

2.7 Dynamic Buchberger algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 2.7.1 Gröbner Fan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 2.7.2 The Dynamic Buchberger algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . 47 2.7.3 Order refining . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 2.7.4 Initial orderings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 3 Syzygies and resolutions 53

3.1 Minimal basis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 3.2 Syzygies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 3.3 Resolutions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 3.4 A Buchberger Algorithm for resolutions . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

3.4.1 The environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 3.4.2 The algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 3.4.3 Termination and correctness . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 3.4.4 Multigraded case . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 3.4.5 Other orderings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64

3.5 An example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 3.6 Statistics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67

3.6.1 Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 3.7 Examples resolution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69

4 Operations 73 4.1 Membership problems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 4.2 Elimination and Zariski closure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 4.3 Homogeneization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 4.4 Intersection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76

4.4.1 Intersections in practice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 4.4.2 An interpretation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 4.4.3 Useless pair avoidance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 4.4.4 Hilbert-Driven intersection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 4.4.5 Intersection statistics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81

4.5 Transporter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 4.5.1 Bayer special remark . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 4.5.2 Principal quotient . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 4.5.3 Principal quotient - graded case . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 4.5.4 Bayer’s remark algorithms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 4.5.5 Non principal quotient . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 4.5.6 Transporter statistics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87

4.6 Saturation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87

4.6.1 Non-principal saturations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 4.7 Inverse images, multiple intersections, etc. . . . . . . . . . . . . . . . . . . . . . . . . . . 88

5 Ideal Decompositions 91 5.1 A brief overview of the problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 5.2 Splitting Techniques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 5.3 Staircases, flatness and hypersurfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94

5.3.1 Families of Gröbner Bases and block orderings . . . . . . . . . . . . . . . . . . . . 94 5.3.2 Staircase variation and flatness . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 5.3.3 Projecting to an hypersurface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97

5.4 The algorithms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 5.4.1 Iso-radical decomposition algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . 98 5.4.2 Optimizations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 5.4.3 Reduced decomposition algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 5.4.4 Strict decomposition algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101

5.5 Tests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 5.6 An Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103

Further developments 105

Bibliography 107

Introduction

This thesis has as its main theme the development of efficient algorithms for the computation of some basic operations in Commutative Algebra, e. g. ideal membership, projection, intersection, transporter, saturation, syzygies, resolution, radicals. Since the introduction of Gröbner bases by Buchberger [Bu], it has been possible to compute such operation effectively in practice, see Cox, Little, O’Shea [CLS] and Eisenbud [E] for an overview. Since the computations are often quite time-consuming, the development of efficient algorithms is a necessity. We are here mainly concerned with optimizations coming from Commutative Algebra, e. g. the use of Hilbert function, and not with optimizations coming from Computer Science (e. g. the data structures used) or Polynomial Arithmetic (e. g. the polynomial multiplication algorithm used). The optimizations presented here are meant for the “average” case. Hence, there is no proof of the effectiveness of the optimizations in the sense of Complexity Theory, but the algorithms are tested on meaningful examples. The algorithms discussed in this thesis don’t require the input to be in “generic position”, since our belief is that this constraint gives the best theoretical but worst practical complexities.

Gröbner basis computations are the main tool for the operations we are interested in, and they strongly depend on orderings. The orderings on polynomial rings are well known, see Robbiano [R1], but it has been necessary to develop a characterization of the orderings on a polynomial module that give the same ordering on every component, see Caboara and Silvestri [CS, CS1]. Since Gröbner basis computations are quite lengthy, we have developed two optimizations for the computation of a Gröbner basis:

the use of the Hilbert function in multigraded cases, see Caboara, de Dominicis and Robbiano [CDR], a generalization of the work of Traverso [T], and

dynamically changing the ordering during the computation of a Gröbner basis, see Caboara [Ca], [St].

Moreover we have developed a module version of the Buchberger algorithm as similar as possible to the usual ring algorithm. Such similarity (while retaining the efficiency of the original algorithm) is important for uniformity of implementation.

Syzygy computations are closely related to Gröbner basis computations, and a key step in several algorithms. We use the module Gröbner basis algorithm to compute syzygies by adding a tag variable. Moreover, with some modifications, this method allows us us to compute the minimal resolution of a graded module, see Caboara [Ca1]. Through our algorithm we are able to compute the (to my knowledge hitherto unknown) resolution of some well known hard examples, like the homogeneous “cyclic 7” ideal. An interesting discovery is that Schreyer’s ordering for the syzygies in not always the best one.

The other key step for most basic algorithms is the intersection. We examine in detail the known algorithms, prove the substantial equivalence of the tag-variable and syzygy algorithms, and introduce the use of Hilbert Driven techniques, see Caboara and Traverso [CT]. Several examples hint that the Hilbert Driven algorithm is quite good. We then examine the transporter and saturation algorithms, and develop Hilbert Driven versions of them also.

In the last chapter, as an application of the algorithms described above, we give an algorithm for the equidimensional (if necessary, reduced) decomposition of an ideal. The computation of the radical is immediate from a reduced decomposition. We use as our main tool the projection along the coordinates (hence, Gröbner basis computation with respect to an elimination term-ordering). This method doesn’t require the ideal to be in generic (dense) position. We use flatness to control pathological cases that arise from the lack of genericity, see Caboara, Conti and Traverso [CCT]. This algorithm seems to be at least the equal of the direct algorithms based on syzygy computations introduced by Eisenbud, Huneke and Vasconcelos [EHV].

In the Conclusions, we summarize the thesis’s results and discuss the future development of the work started with this thesis.

We have aimed to make this thesis self-contained, the only prerequisites being some elementary Commutative and Computational Algebra, [AM, CLS, E, M, Mu, ZS]. Well known facts are usually recalled without proof. We give more details on more obscure topics, like the use of non-standard graduations, especially for Hilbert functions, and when we have to set up the notation for subsequent modifications. The original ideas expressed in this thesis are described in [Ca, Ca1, CDR, CS, CS1, CCT, CT].

At the end, in the section Problems and prospective, we discuss open problems and future developments.Below, we detail briefly the content and the results of each chapter.

Effective Rings and Modules (chapter 1)

This is an introductory chapter where some basic facts from Commutative Algebra are recalled; graduations and orderings are characterized, and an implementation for modules is discussed. We then examine in more detail the graduations given by integer matrices, especially from an effective point of view (e. g. how to find such matrices by linear algebra); see Robbiano [R2]. Throughout the thesis, “homogeneous” means “homogeneous with respect to one of these matrices”. The characterization of ring orderings is then recalled, following Robbiano [R1], and a characterization of the module orderings which give the same ordering on each component is introduced, see Caboara and Silvestri [CS, CS1, Sv]. This is a special case of the more general characterization of module orderings, see Rust and Reid [RR]. Then we discuss an implementation of modules through an embedding in a suitable polynomial ring. Such an implementation is used throughout the thesis, to unify the treatment of ideals and modules; see Caboara and Traverso [CT] and Caboara [C]. Then there is a brief introduction to multigraded Hilbert function theory. Hilbert functions are a very important tool for the optimizations of our algorithms (see chapter for 2 to 5). Our interest lies mainly in the computation of Hilbert functions, and in some formulas that are needed for the applications in the subsequent chapters.

Gröbner Bases (chapter 2)

In this chapter we recall briefly some basic facts of Gröbner basis theory, and give some variants of the Buchberger Algorithm for Gröbner basis computation. For an overview of Gröbner basis theory, see Buchberger [Bu], Cox, Little and O’Shea [CLS] and Eisenbud [E]. We examine the homogeneous version of the Buchberger algorithm, mainly to set up notation, and discuss the use of Hilbert functions to optimize the Buchberger algorithm, see Traverso [T]. We then generalize the Traverso Hilbert-Driven algorithm to the multigraded case, see Caboara, de Dominicis and Robbiano [CDR]. Some examples show the utility of this “Bi-Hilbert-Driven algorithm” when it is possible to apply it. A version of the Buchberger algorithm that changes dynamically the ordering during the computation is then discussed, see Caboara [Ca] and Sturmfels [St]. The feasibility tests for each ordering are performed using the simplex algorithm, while the heuristics that select the “optimal” ordering are based on Hilbert function considerations. We then briefly discuss a module version of the Buchberger algorithm that uses the embedding introduced in chapter 1. Since this module Buchberger algorithm differs from the usual Buchberger algorithm only by the definition of some internal procedures, (mainly the division test for terms), from here on there will be no special treatment for modules/submodules. Finally, a version of the Buchberger algorithm that factorizes the polynomials of the Gröbner basis is briefly discussed. A factorizing Buchberger algorithm is useful for the ideal decompositions algorithms of chapter 5.

Syzygies (chapter 3)

In this chapter we examine briefly the computation of a minimal basis for an homogeneous module, mainly to set up the notation for the minimal resolution algorithm. The two known algorithms for syzygy computations are then compared, and it is found that they are equal, except for the timing of some sub-operation, see Caboara and Traverso [CT]. Then, the tag-variable syzygy algorithm and the algorithm for the computation of a minimal basis of a module are combined to give an algorithm for the computation of a minimal resolution of a graded module, see Caboara [Ca1]. This algorithm is quite efficient, as shown by some examples, and on the average on a par with the more recent algorithms, see Capani, de Dominicis, Niesi, Robbiano [CDNR] and La Scala, Stillman [LS]. Moreover, using the characterization of module orderings given in chapter 1, it is quite easy to explore different strategies With the resolution algorithm it has been possible to compute for the first time some quite complex resolutions, like that of the “cyclic 7” ideal, see section 3.7. A main feature of the resolution algorithm is its ease of implementation, since it is only a slight modification of the usual Buchberger algorithm. We prove termination and correctness of the algorithm.

Operations (chapter 4)

In this chapter we examine in detail the implementation of three basic operation of computational ideal/module theory : intersection, transporter and saturation. Several algorithms for the ideal and module cases are analyzed and compared. Since most algorithms use intersection as a key step, the algorithms for intersection are examined with special care. In particular, the tag variable algorithm and the syzygy algorithm for intersections are proved equivalent. We develop an Hilbert-Driven version of the intersection algorithm that seems to be quite efficient, see section 4.4.5. The transporter and saturation algorithms are then studied. The same techniques used in the intersection case gives us a Hilbert-Driven version of the transporter and saturation algorithm.

Ideal Decompositions (chapter 5)

In this chapter we develop an algorithm that gives an equidimensional decomposition of an ideal. The equidimensional decomposition is a first step for the reduced decomposition, (and also, radical computation), and primary decomposition. We give also the algorithm for the computation of a reduced decomposition from an equidimensional decomposition. The main tool is the projection of the variety to a hypersurface along coordinates (from the algebraic point of view, computation of Gröbner bases with respect to an elimination ordering). We use flatness to control the pathological cases that arise using non-generic projections. When such a case is detected, the ideal is decomposed in two or more simpler ideals through GCD s and saturations. Full use is made of the optimized operation introduced in chapter 4, and of the Hilbert Driven techniques of chapter 2. Since the ideals are kept sparse, the algorithm is quite efficient, see the examples in section 5.5. This algorithm seems to be a valid alternative to the direct algorithms introduced by Eisenbud, Huneke and Vasconcelos [EHV], that use syzygy and resolution computations as their main tool. This chapter is intended for showing the use of the algorithms developed in the previous chapters as basic steps for a more complex, non-basic algorithm. Hence, the analysis is not as detailed as in the other chapters. A full treatment of the decomposition algorithms requires a thesis in itself.

When not explicitly said, the computations have been performed with a PentiumPro, 200Mz, 96MB RAM, working under Linux 2.0.30. The CoCoA versions are cocoa3011b or cocoa3.3, [COCOA]. The vi CONTENTS performance of the two versions are quite similar. We have employed both because cocoa3.3 has a more complete treatment of the Hilbert-Driven algorithms, while cocoa3011b is more stable.

Chapter 1

Computational rings and modules

In this chapter we briefly detail the kinds of rings and modules that are of computational interest from our point of view. The main points are :

a description of graded rings and modules from a computational point of view, section 1.1;

a description and a partial classification of the orderings for rings and modules, section 1.2 and 1.3;

the Hilbert Function and the algorithms to compute it, section 1.4.

1.1 Graded Rings and Modules

The standard work is [ZS]; see [R2] for a description of non-standard graduations.

1.1.1 Graded rings

Definition 1.1 Let A be a ring, G be a semigroup and A := {A_{d}}_{d∈G} be a family of subgroups of A such that

• A = ⨁_{d∈G} A_{d}.

• ∀a ∈ A_{d}, b ∈ A_{d′} we have ab ∈ A_{d+d′}.

The family A is a graduation of A over G and A is graded over G. The subgroup A_{d}, d ∈ G is the homogeneous component of G of degree d and the elements a ∈ A_{d} are the homogeneous elements of degree d of A.

Remark 1.2 We note that if A is a graded ring with graduation A := {A_{t}}_{t∈G}, and 0 is the identity of G, then 0 is an homogeneous element of A_{t} for each t ∈ G, A_{0} is a subring of A and A_{t} is an A_{0} module for each t ∈ G.

1.1.2 Graded modules

Definition 1.3 Let A be a graded ring with graduation A := {A_{t}}_{t∈G} and M be an A module. Let M := {M_{d}}_{d∈G} be a family of subgroups of M such that

• M = ⨁_{d∈G} M_{d}.

• am ∈ M_{t+d} ∀ a ∈ A_{t}, m ∈ M_{d}. is graded over G. The submodule M_{d}, d ∈ G is the homogeneous component of degree d of M and the elements M_{d} are homogeneous elements of degree d of M..

Remark 1.4 For every element m ∈ M, there is one and only one way to write m as sum of homogeneous elements of M, except for the ordering of the elements of the sum.

Proposition-Definition 1.5 Let A be a ring and (M, M) be an R module graded over the semigroup G. Then a submodule N ⊂ M is homogeneous if, equivalently,

• N = ⨁_{d∈G}(N ∩ M_{d}), or

• ∀m = ∑_{d∈G} m_{d}, m ∈ N ⟺ m_{d} ∈ N ∀ d ∈ G, or

• N is generated by homogeneous elements.

Proof. This is standard, see p.e. [M]. □

Definition 1.6 Let (A, A) be a graded ring and I be an ideal of A. Then I is homogeneous as ideal if it is homogeneous as submodule of (A, A).

Definition 1.7 Let A_{i} := { polynomials of degree ≤ i}. Then {A_{i}}_{i∈ℕ} is the standard graduation for k[x_{1}, …, x_{n}] over ℕ.

To ease the notation, when there is not risk of ambiguity, the mention of the graduation and of the subgroup would be omitted.

1.1.3 Graded morphisms

Definition 1.8 Let (M, M), (N, N) be graded A modules over G and f : M → N be an A module morphism. The morphism f is graded (of degree t ∈ G) if f(M_{d}) ⊆ N_{d+t} ∀d ∈ G.

Definition 1.9 An exact sequence of graded modules is graded of degree t if all its morphism are graded of degree t.

Example 1.10 Let k[x] be graded with the standard graduation. Then the morphism id_{k[x]} : k[x] → k[x], is graded of degree 0, and the morphism k[x]@ > ·x >> k[x], is graded of degree 1.

1.1.4 Shifts

Definition 1.11 Let M be a graded A module with graduation M := {M_{d}}_{d∈G} and t ∈ G. The family {M′_{d}}_{d∈G} := M_{d+t} is a graduation of M and is the graduation M shifted by t. The standard graduation of M shifted by t is denoted as M(t).

Example 1.12 Let M := k[x, y]. Then M(−1)_{0} := (0), M(−1)_{1} := (0, 1), M(−1)_{2} := (0, x, y), M(−1)_{3} := (0, x^{2}, xy, y^{2}), …

Example 1.13 Let k[x] be graded with the standard graduation. Then the morphism

\begin{matrix}k[x](−1) & @ > ·x >> & k[x] \\ f & ⇝ & xf \end{matrix}

is graded of degree 0.

1.1.5 Some results for graded rings/modules

Proposition 1.14 Let M be a graded A module and N be an homogeneous submodule of M. Then the A module M/N is graded with graduation (M/N)_{d} := M_{d}/N_{d}

Proof. Easy check. □

Proposition 1.15 Let I and J be homogeneous ideals of a graded ring A. Then the ideal

a) I + J is homogeneous;

b) I ∪ J is homogeneous;

c) I : J is homogeneous;

c) I : J^{∞} is homogeneous.

d) \sqrt{I} is homogeneous.

e) The prime ideals associated to I are homogeneous.

f) There exist Q_{1}, …, Q_{v} homogeneous primary ideals such that I := Q_{1} ∩ … ∩ Q_{v}.

Proof. We prove only d), the other cases are similar. Let τ be a total ordering over G compatible with the semigroup structure. By the remark 1.4, since a ∈ R, a = a_{d_{1}} + … + a_{d_{t}} , where d_{1} <_{τ} … <_{τ} d_{t}. By the proposition 1.5, it suffices to prove that if a ∈ \sqrt{I} then a_{d_{i}} ∈ \sqrt{I} for each i : 1 … t. But a^{n} = a_{d_{1}}^{n} + … elements of degree >_{τ} nd_{1}; since I is homogeneous (a^{n})_{nd_{1}} = a_{d_{1}}^{n}, thus a_{d_{1}}^{n} ∈ I and hence a_{d_{1}} ∈ \sqrt{I}. Thus a − a_{d_{1}} ∈ \sqrt{I}, and the thesis is proved by iteration. □

Proposition 1.16 Let A be a graded ring and M a graded A module. Let N and P be homogeneous submodules of M. Then

i) the A module N :_{M}P := {m ∈ M | mP ⊆ N} is homogeneous.

ii) The ideal N:_{A}P := {a ∈ A | aP ⊆ N} ⊂ A is homogeneous.

Proof. The proofs of a) and b) are similar to the proof of a) of proposition 1.15. □

1.1.6 Effective graduations

Definition 1.17 Let G be a semigroup. A graduation A over R := k[x_{1}, …, x_{n}] is geometric if

a) k ⊂ R_{0}

b) the variables x_{1}, …, x_{n} are homogeneous.

Corollary 1.18 Let A be an geometric graduation over R := k[x_{1}, …, x_{n}]. Then

a) every term of R is homogeneous.

b) R_{t} is an R_{0} vectorial space for each t ∈ G.

Definition 1.19 Let R := k[x_{1}, …, x_{n}] be a ring with geometric graduation A over ℤ^{r}. Then it is possible to build a matrix w ∈ M_{r×n}(ℤ), where (w_{1,i}, …, w_{r,i}) := deg(x_{i}). The i^{th} column of the matrix w is the (multi)degree or (multi)weightof the variable x_{i}, sometimes denoted as ∂_{w}(x_{i}). The ring R is graded by w over ℤ^{r}, and the vectorial space of the homogeneous polynomials of R of degree d := (d_{1}, …, d_{r}) is (R, w)_{d d d}.

Proposition 1.20 Let R := (k[x_{1}, …, x_{n}], w) be a graded ring. If there exists a linear combination over ℤ of the rows of w such that its elements are positive, then #(R, w)_{d d d} < ∞ for each d ∈ ℤ^{r}.

Proposition 1.21 Let R := (k[x_{1}, …, x_{n}], w) be a graded ring. Then, if there exists a submatrix w′ of w such that

1. w′ ∈ M_{r′,n}(ℤ), r′ ≤ r;

2. the entries of w′ are non negative;

3. every column of w′ has a positive entry.

We have that #(R, w)_{d d d} < ∞ for each d ∈ ℤ^{r}.

Definition 1.22 A matrix w fulfilling the conditions of proposition 1.20 or 1.21 is a system of weights for R and gives a geometric graduation for R over ℤ^{r}. In the following, every graduation will be geometric over ℤ^{r}, for some r ≥ 1,and will be given through a suitable system of weights w. The number of linearly independent rows of w is the type of w.

Definition 1.23 The system of weights u and w are equivalent if their associated graduations are equivalent. A system of weights w is the refinement of a system of weights u of type m if w_{1} = u_{1}, …, w_{m} = u_{m}.

Remark 1.24 The order of the rows of a system of weights w for R is arbitrary in the sense that changing the order we obtain a system of weights which induces the same graduation. To a system of weights are associated two natural ordering on the set of the homogeneous components

Definition 1.25 Let (R, w) be a graded ring. Then the two orderings on the set of the homogeneous components of R, w, σ_{1}, σ_{2} defined by

• R_{d} >_{σ_{1}} R_{d′} ⟺ (d_{1}, …, d_{r}) >_{lex} (d′_{1}, …, d′_{r})

• R_{d} >_{σ_{2}} R_{d′} ⟺ d_{i} ≥ d′_{i} for each i : 1 … r

are respectively the w degree ordering and the w uniform degree ordering.. The w uniform degree ordering is usually a partial ordering, while the w degree ordering is total. Since the set of the homogeneous component of R, w in indexed by ℤ^{r}, any term-ordering on ℤ^{r} is a term-ordering on it.

Some interesting graduations :

Example 1.26 Let w := [\underbrace{1, …, 1}_{n}] ∈ ℚ. Then the graduation given by w on k[x_{1}, …, x_{n}] is the standard

graduation.

Example 1.27 Let w ∈ M_{n×n}(ℤ) be a system of weights for k[x_{1}, …, x_{n}]. Then the graduation given by w over k[x_{1}, …, x_{n}] is the fine graduation . The homogeneous components of k[x_{1}, …, x_{n}], w are the sets {t}, t ∈ T^{n}.

Corollary 1.28 From proposition 1.15 and example 1.27 it follows that the sum, intersection, radical and saturation of monomial ideals are monomial ideals. Similarly, the associated primes of a monomial ideal are monomial ideals.

It is quite easy to determine the existence, and to build, if it exists, a graduation of k[x_{1}, …, x_{n}] such that a given polynomial would be homogeneous, if necessary of a given degree.

Proposition 1.29 Let R := k[x_{1}, …, x_{n}] and f := ∑_{i} a_{i}t_{i} ∈ k[x_{1}, …, x_{n}] with a_{i} ∈ k. Let X_{i,j} be indeterminates and w := (X_{i,j}), i : 1 … n, j : 1 … r Then, a solution of the system

\{ \begin{matrix}w · Log (t_{1}) & = & w · Log (t_{2}) \\ w · Log (t_{1}) & = & w · Log (t_{3}) \\ ⋮ & ⋮ & ⋮ \\ w · Log (t_{1}) & = & w · Log (t_{k}) \end{matrix}  (1.1)

with respect to the indeterminates X_{i,j} that fulfill the conditions of proposition 1.20 give a system of weights for R such that f is homogeneous with respect to it.

Proof. Immediate by the definition of system of weights. □

Example 1.30 Let f := x^{2} − x be a polynomial of k[x]. It is easy to see that no system of weights on k[x] gives a graduation with respect which f is homogeneous.

Since not all polynomials may be made homogeneous by changing only the system of weights, it makes sense to generalize the above procedure. By adding a sufficient number of variables, any set of polynomials may be made homogeneous, often even with restrictions on the system of weights matrix.

Proposition 1.31 Let R := k[x_{1}, …, x_{n}], f := ∑_{i:=1}^{k} a_{i}t_{i} ∈ k[x_{1}, …, x_{n}] and h := {h_{1}, …, h_{r}} new variables. Let X_{i,j}, Y_{l,s} be indeterminates with i : 1 … n + r, j, s : 1 … r, l : 1 … k and w := (X_{i,j}) Then, the solutions of the system

\{ \begin{matrix}w · Log (t_{1}h^{Y_{1}}) & = & w · Log (t_{2}h^{Y_{2}}) \\ w · Log (t_{1}h^{Y_{1}}) & = & w · Log (t_{3}h^{Y_{3}}) \\ ⋮ & ⋮ & ⋮ \\ w · Log (t_{1}h^{Y_{1}}) & = & w · Log (t_{k}h^{Y_{k}}) \end{matrix}  (1.2)

with respect to the indeterminates X_{i,j} that fulfill the conditions of proposition 1.20 give a system of weights for R such that the polynomial ∑_{i:=1}^{k} a_{i}t_{i}h^{Y_{l}} is homogeneous.

Proof. Immediate by the definition of system of weights. □

Corollary 1.32 Let u be a system of weights on R. Then for each polynomial f ∈ R and for each r : 1 … n there exists a system of weights w of type r on R[h] such that f is w homogeneous and w restricted to R is equal to u.

Proof. If f is homogeneous for some system of weights u, we discover such u using proposition 1.29. If not, we follow the following procedure: we take

X_{i,j} = \begin{cases}δ_{i,j} & for i : 1 … n and j : n + 1 … n + r \\ u_{i,j} & for i : 1 … n and j : 1 … n \end{cases}

and we order the indeterminates by an ordering > such that Y_{1} > … > Y_{r} > X. Then, it is immediate to check that the system (1.2) is an upper triangular homogeneous system of (n + r − 1) × k equations in n × r + r × k indeterminates whose associated matrix is

[ I_{r−1} | − 1 ; ⋮ ; −1 | A ]  (1.3)

where A ∈ Mat_{n×k}(k). Such system has obviously positive integer solutions. Let w be the matrix of the X solutions of (1.3). The polynomial ∑_{i:=1}^{k} a_{i}t_{i}h^{Y_{l}} is then homogeneous with respect to the system of weights w. □

Remark 1.33 Let R := k[x_{1}, …, x_{n}], u be a system of weights for R of type r and f ∈ R. Then corollary 1.32 gives the system of weights

w := [ u | I ]

for R[h] and a procedure to build a polynomial f′ such that

f′ is w homogeneous and

f′(x_{1}, …, x_{n}, 1, …, 1) = f(x_{1}, …, x_{n}). Indeed

f = ∑_{i=1}^{k} a_{i}t_{i} ⇝ ∑_{i=1}^{k} a_{i}t_{i}h_{1}^{∂_{u_{1}} (t)} ⋯ h_{r}^{∂_{ur} (t)} =: f′

Example 1.34 Let R := k[x, y, z] and u := [\begin{matrix}1 & 1 & 1 \\ 1 & 2 & 4 \\ 0 & 0 & 2 \end{matrix}]. Then

w := [\begin{matrix}1 & 1 & 1 & 1 & 0 & 0 \\ 1 & 2 & 4 & 0 & 1 & 0 \\ 2 & 0 & 0 & 0 & 0 & 1 \end{matrix}]

and f := z^{4} + xy + z ⇝ z^{4}h_{3}^{2} + xyh_{1}^{2}h_{2}^{13} + zh_{1}^{3}h_{2}^{12}h_{3}^{2} =: f^{h,u}.

Definition 1.35 Let R := k[x_{1}, …, x_{n}] and f ∈ R. Let h_{1}, …, h_{r} be new variables. Let f′ ∈ R[h] be such that

1. there exists a system of weights w on R[h] such that f′ is w homogeneous;

2. f′(x_{1}, …, x_{n}, 1, …, 1) = f(x_{1}, …, x_{n}).

Then the couple (f′, w) is an homogeneization of f. If u is a system of weights on R and the restriction of w to R is equivalent to u, then f′ is an homogeneization of f with respect to u. If f′ is the polynomial produced by the operation described in remark 1.33, then it is the homogeneization of f with respect to u.

Corollary 1.32 gives a solution, not necessarily a minimal solution with respect to the number of new variables introduced. A way to add fewer variables is to try to solve system (1.2) introducing only one new variable and, if there are no acceptable solutions, introduce two variables and so on.

Homogeneization of set of polynomials/module elements follows straightforwardly from the homogeneization of a single polynomial. Homogeneization of ideals/modules is more complex, see section 4.3.

Proposition 1.36 Let R := k[x_{1}, …, x_{n}], w be a system of weights and M be a free, finitely generated R module of rank k. Then a matrix w′ ∈ Mat_{(n+k)×r}) gives a graduation on M. All the proposition above holds for such modules, and the notation used for rings applies to modules. The graduations that give the same degree to the same term independently from the component in which the term is are Riquier graduations. For each Riquier graduation there is a matrix w′ ∈ Mat_{(n+k)×r}) that gives an equivalent graduation.

Proof. That a matrix w′ ∈ Mat_{(n+k)×r}) gives a Riquier graduation is obvious. The converse is easy after the classification of module orderings, see section 1.3. Refer to the example below for a hint. □

Example 1.37 Let R := k[x, y, z, t], w := [\begin{matrix}1 & 1 & 2 & 1 \\ 0 & 0 & 2 & 3 \end{matrix}] and M := R^{2}. Then if we give degree (3, 0) to

e_{1} and degree (0, 1) to e_{2} the element x^{3}y^{2}e_{1} + y^{7}ze_{2} is homogeneous with respect to the matrix

[\begin{matrix}1 & 1 & 2 & 1 & 3 & 0 \\ 0 & 0 & 2 & 3 & 0 & 1 \end{matrix}]

1.2 Ring orderings

The term-orderings on a polynomial ring are closely related with the computation of Gröbner bases and the efficiency of Buchberger Algorithm; they are classified by Robbiano [R1].

The module orderings are substantially more complex. Module orderings which give the same ordering on every component are classified here, see also [S, CS]. For more general orderings, we refer to [CSi] and [RR].

Definition 1.38 Let R := k[x_{1}, …, x_{n}]. A total ordering τ on T^{n} such that t > 1 ∀ t ∈ T^{n} is a term-ordering. The set of all term-orderings on R is TO(T^{n}).

Remark 1.39 A term-ordering τ on a ring R := k[x_{1}, …, x_{n}] has a crucial finiteness property: There are no infinite strictly τ decreasing sequences of terms of R

Definition 1.40 Let R := k[x_{1}, …, x_{n}], τ ∈ TO(T^{n}) and f ∈ R. Then the term Lt_{τ} (f) := Max_{τ} (Supp(f)) is the leading term of f with respect to τ. Similarly, Lm_{τ} (f) is the leading monomial of f. The coefficient in f of Lt_{τ} (f) is the leading coefficient di f with respect to τ, or Lc_{τ} (f). To ease the notation, when no ambiguity arises, there would be no explicit reference to the term-ordering.

Definition 1.41 Let A and B be rings and τ ∈ T (A), σ ∈ T (B). Then if the map f : A@ >>> B is such that a >_{τ} b ⟹ f(a) >_{σ} f(b), then f is ordered.

Remark 1.42

i) An ordering (term-ordering ) on T^{n} may be easily extended to an ordering (term-ordering )on R.

ii) An ordering (term-ordering )on ℕ^{n} may be easily extended to an ordering (term-ordering )on ℤ^{n}.

iii) An ordering on ℤ^{n} may be easily extended to an ordering (term-ordering )on ℚ^{n}.

Hence, to give an ordering (term-ordering ) on k[x_{1}, …, x_{n}] it suffices to give an ordering (termordering ) on T^{n} ≃ ℕ^{n} ⊂ ℤ^{n}, thus on ℤ^{n}.

Theorem 1.43 Let τ be a total ordering on ℚ^{n}. Then there exists a list u := (u_{1}, …, u_{s}) of rationally independent vectors in ℝ^{n} such that

a) The map

\begin{aligned}α : & (ℚ^{n}, τ) & @ > >> & (ℝ^{s}, lex) \\ & v & ⇝ & (v · u_{1}, …, v · u_{s}) \end{aligned}

is linear, ordered and injective.

b) If d(u_{i}) is the dimension of the rational vector space spanned by the coordinates of u_{i}, then

∑_{i=1}^{s} d(u_{i}) = n.

If τ is a term-ordering, then

c) the first non zero entry for every component is positive.

Vice versa, every list [u_{1}, …, u_{s}] of vectors which satisfy the conditions a) and b) defines a total ordering on ℚ^{n}. If u fulfill condition c) too, then it defines a term-ordering.

Definition 1.44 If u_{i} ∈ ℚ^{n} for each i : 1 … n, it is useful to view the vector list u as a matrix, whose rows are u_{1}, …, u_{s}. In this case, Det(u) has to be non zero to fulfill b). Such orderings are rational orderings. Matrices associated to rational term-orderings have the first non null entry of each column positive. If τ is an ordering, then the associated matrix is often denoted as Γ_{τ}.

Remark 1.45 Partial orderings are associated to vector lists such that ∑_{i=1}^{s} d(u_{i}) < n. Partial orderings such that t > 1 ∀ t ∈ T^{n} ( partial term-orderings) are associated to vector lists such that ∑_{i=1}^{s} d(u_{i}) < n, but that fulfill condition c).

Definition 1.46 With the notation of theorem 1.43, the (vector list) matrix u is associated to or gives the term-ordering τ.

Remark 1.47 Different matrices may give the same term-ordering. In fact, if to the term-ordering τ is associated the matrix u := (u_{1}, …, u_{n}), any matrix w whose rows w_{j} are a linear combination of the rows u_{i}, i : 1 … j is associated to τ. We refer to Schwartz [Sw] for an analysis of the matrices associated to term-orderings.

Proposition-Definition 1.48 If u is a matrix associated to the ordering τ, then any matrix associated to τ has as first row a multiple of u_{1} The positive half-line spanned by u_{1} in (ℝ^{n})^{+} is the half line associated to τ. The first vector of τ is the positive versor of the half line associated to τ.

Example 1.49 The vector list [(1, \sqrt{37})] defines a term-ordering τ on k[x, y] such that y > x^{3}. The checking is easy, y >_{τ} x^{3} ⇔ (−3, 1)˙(1, \sqrt{37}) > 0 ⇔ −3 + \sqrt{37} > 0. The positive half-line associated to τ has equation \sqrt{37}y − x = 0, and the first vector of τ is (1, \sqrt{37})/\sqrt{38}.

1.2.1 Some interesting orderings

Definition 1.50 Let R := k[x_{1}, …, x_{n}]. The term-ordering τ associated to a vector list which is a permutation of the vector list [e_{1}, …, e_{n}] is a lexicographic ordering. If τ is termed lex ordering for R without further specification, it is supposed that x_{1} >_{τ} x_{2} >_{τ} … >_{τ} x_{n}.

Example 1.51 Let R := k[x, y, z]. Then the term-ordering associated to the matrix

[ \begin{matrix}1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{matrix} ]

is the lex term-ordering.

Definition 1.52 Let R := k[x_{1}, …, x_{n}], V := {x_{i}}_{i∈W}, τ ∈ TO(k[V]) and σ ∈ TO(k[x−W]). If Γ_{τ} , Γ_{σ} are matrices associated to τ and σ, then the term-ordering on R associated to the matrix

[ \begin{matrix}Γ_{τ} & 0 \\ 0 & Γ_{σ} \end{matrix} ]

is the block ordering, or elimination ordering (for V) τ × σ. If σ is an ordering, and V ⊂ {x_{1}, …, x_{n}} then σ_{V} is the restriction of σ to k[V].

Remark 1.53 The lex term-ordering introduced in definition 1.50 is an elimination ordering for {x_{1}}, …, {x_{1}, …, x_{j}}, , {x_{1}, …, x_{n−1}}. Elimination orderings have strong algebro-geometric properties, see chapter 4 and 5.

Remark 1.54 A system of weights is defined by a matrix, and the order of the rows doesn’t matter (a permutation of the rows gives an equivalent system of weights). Hence a couple (w, an ordering on the rows of w) gives a partial term-ordering on R.

Definition 1.55 Let R := k[x_{1}, …, x_{n}] be a ring graded by the system of weights w of type r. A termordering on R such that the first r rows of its associated matrix are linearly dependent from w is a term-ordering compatible with to w.

Example 1.56 Let S := k[u, v, w, l] be graded by the system of weights

[ \begin{matrix}1 & 1 & 0 & 0 \\ 0 & 0 & 1 & 1 \end{matrix} ]

Then the term-ordering σ associated to the matrix

[ \begin{matrix}1 & 1 & 0 & 0 \\ 0 & 0 & 1 & 1 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 1 & 0 \end{matrix} ]

is compatible with w.

Example 1.57 Let R, τ and S, σ be the ordered rings described in the examples 1.51 and 1.56. Then the term-ordering τ × σ on k[x, y, z, u, v, w, l] is associated to the matrix

[ \begin{matrix}[ \begin{matrix}1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{matrix} ] & [ \begin{matrix}0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 \end{matrix} ] \\ [ \begin{matrix}0 & 0 & 0 \\ 0 & 0 & 0 \\ 0 & 0 & 0 \\ 0 & 0 & 0 \end{matrix} ] & [ \begin{matrix}1 & 1 & 0 & 0 \\ 0 & 0 & 1 & 1 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 1 & 0 \end{matrix} ] \end{matrix} ]

Definition 1.58 Let R := k[x_{1}, …, x_{n}], τ be a term-ordering on R associated to the vector list whose first element is (1, ⋯, 1) and the others a permutation of n − 1 of the vectors e_{1}, …, e_{n}. The termordering τ is a deglex ordering on R. If τ is called a deglex ordering for R without further specification, it is supposed that x_{1} >_{τ} x_{2} >_{τ} … >_{τ} x_{n}.

Definition 1.59 Let R := k[x_{1}, …, x_{n}] and τ a term-ordering on R associated to the vector list whose first element is (1, ⋯, 1) and the others a permutation of n − 1 of the vectors −e_{1}, …, −e_{n}. The termordering τ is a degrevlex ordering on R. If τ is called a deglex ordering for R without further specification, it is supposed that x_{1} <_{τ} x_{2} <_{τ} … <_{τ} x_{n}.

Gröbner basis computations with respect to the degrevlex ordering give usually the best timings, see [BS2].

The degrevlex ordering is usually quite good for the computation of Gröbner bases (see chapter 2). Hence, when there is some freedom in the the choosing of an ordering, it is usually a good idea to choose it as similar as possible to the degrevlex ordering. So, when we speak of the completion of an ordering we intend the ordering that has the maximum possible number of rows equal to −e_{i}, with the indexes i has big as possible. So, when we speak of the block-ordering we intend the block ordering whose blocks defines degrevlex orderings, and so on.

1.2.2 Semi flags

We introduce some notions that will be useful in the following for the classification of module termorderings.

Definition 1.60 Let τ be a ordering on T^{n}. The set of positive terms of τ is the set

P_{τ} := {a a a ∈ ℕ^{n} | x^{a a a} >_{τ} 1}.

Note that giving the set of positive terms of an ordering is a way to define it.

Remark 1.61 If u := [u_{1}, …, u_{s}] is a list of vectors defining the ordering τ, then the set of positive terms of τ is the subset of the points p ∈ ℤ^{n} satisfying at least one of the following systems of equations/inequalities

{ u_{11}x_{1} + ⋯ + u_{1n}x_{n} > 0

\{ \begin{matrix}u_{11}x_{1} + ⋯ + u_{1n}x_{n} & = & 0 \\ u_{21}x_{1} + ⋯ + u_{2n}x_{n} & > & 0 \end{matrix}

⋮

\{ \begin{matrix}u_{11}x_{1} + ⋯ + u_{1n}x_{n} & = & 0 \\ ⋮ & ⋮ & ⋮ \\ u_{s−1 1}x_{1} + ⋯ + u_{s−1 n}x_{n} & = & 0 \\ u_{s1}x_{1} + ⋯ + u_{sn}x_{n} & > & 0 \end{matrix}

Example 1.62 The term-ordering τ := deglex on k[x, y] is described by the matrix

[ \begin{matrix}1 & 1 \\ 1 & 0 \end{matrix} ]

and the systems of equations/inequalities associated to τ are

\{x + y > 0 and \{ \begin{matrix}x + y = 0 \\ x > 0 \end{matrix}

In the picture below, the set P_{τ} ⊂ ℤ^{2} is described by the full dots.

[figure: 1) y^{2} ≱_{τ} x^{2} ⇒ (−2, 2) ∉ P_{τ}; 2) x^{2}y >_{τ} 1 ⇒ (2, 1) ∈ P_{τ}; 3) x^{2} >_{τ} y^{2} ⇒ (2, −2) ∈ P_{τ}; •; •; •; •; •; •; •; •; •; •; •; •; •; •; •; •; 2; •; 3; •; •; •; •; •; •; •; ∘; ∘; ∘; ∘; ∘; ∘; ∘; ∘; ∘; ∘; ∘; ∘; ∘; 1; ∘; ∘; ∘; ∘; ∘; ∘; ∘; ∘; ∘; ∘; ∘; ∘; ⟵ x + y = 0]

It is a natural question exactly which conditions a subset of ℤ^{n} has to satisfy to be the set of positive terms of some term-ordering. To answer, we have to examine the geometry of such sets; we need some geometric definition. The topology is the usual euclidean topology.

Definition 1.63 A maximal convex subset of ℝ^{n} not containing the origin is a semi-flag of ℝ^{n}.

Proposition 1.64 Let B ⊂ ℝ^{n} be a semi-flag. Then B = B_{n} ∪ … ∪ B_{1}, where a) B_{n} is an open n-dimensional halfspace of ℝ^{n} not containing the origin, whose closure contains the

origin;

b) for each n − 1 ≥ i ≥ 1, B_{i} is an open i-dimensional halfspace of ℝ^{n}, not containing the origin, contained in the border of B_{i+1}, and whose closure contains the origin.

Proof. The set B is obviously a semi-flag. To show that every semi-flag has the same structure of B, let C be a semi-flag and then take the interior of the closure of C. This is an open n-dimensional halfspace of ℝ^{n} not containing the origin, but whose closure contains the origin. We have thus found C_{n}. The set C − C_{n} is a semi-flag of ℝ^{n−1} contained in the border of C, and thus iterating this procedure we find C_{n−1}, …, C_{1}. □

Definition 1.65 Let B be a semi-flag of ℝ^{n}; the subset S_{B} := B ∩ ℤ^{n} is the skeleton of B, and the sets B_{i} are the components of B.

An ordering defines a semi-flag and conversely.

Lemma 1.66

a) Let τ be an ordering on T^{n}. Then there exists a (not necessarily unique) B semi-flag of ℝ^{n} whose skeleton is equal to P_{τ};

b) if B is a semi-flag of ℝ^{n}, then there exists an ordering τ on T^{n} such that P_{τ} = S_{B}.

Proof.

a) Let B be a semi-flag of ℝ^{n}. Then it is easy to check that the relation defined by

x^{a a a} > x^{bbb} ⇔ a − b ∈ S_{B}

is an ordering on T^{n}.

b) Let u := [u_{1}, …, u_{s}] be the list of vectors in ℝ^{n} describing τ, and let the first r, 0 ≤ r ≤ s vectors be in ℚ^{n}. Then

{ u_{11}x_{1} + ⋯ + u_{1n}x_{n} > 0

\{ \begin{matrix}u_{11}x_{1} + ⋯ + u_{1n}x_{n} & = & 0 \\ u_{21}x_{1} + ⋯ + u_{2n}x_{n} & > & 0 \end{matrix}
⋮

\{ \begin{matrix}u_{11}x_{1} + ⋯ + u_{1n}x_{n} & = & 0 \\ ⋮ & ⋮ & ⋮ \\ u_{r−1 1}x_{1} + ⋯ + u_{r−1 n}x_{n} & = & 0 \\ u_{r1}x_{1} + ⋯ + u_{rn}x_{n} & > & 0 \end{matrix}

describe the subsets of ℝ^{n} B_{n}, B_{n−1}, …, B_{n−r+1}

Let B_{j}, n − r + 1 ≤ j ≤ n − s + 1 be the subsets of ℝ^{n} described by

\{ \begin{matrix}u_{11}x_{1} + ⋯ + u_{1n}x_{n} & = & 0 \\ ⋮ & ⋮ & ⋮ \\ u_{j−1 1}x_{1} + ⋯ + u_{j−1 n}x_{n} & = & 0 \\ u_{j1}x_{1} + ⋯ + u_{jn}x_{n} & > & 0 \end{matrix}

It is easy to check that B_{n}, …, B_{n−s+1} are the first s components of a semi-flag. There exists many semi-flags which have first components B_{n}, …, B_{n−s+1}, and every one of these satisfies the thesis. By the definition of B_{n} … B_{n−s+1} the skeleton of B is equal to P_{τ} (cfr. remark 1.61). □

Remark 1.67 From the proof of the lemma 1.66, it follows that for rational orderings, the associated semi-flag is unique. For more general term-orderings, this is not true.

Example 1.68 The semi-flag B associated to the term-ordering τ := deglex on k[x, y] it is defined by

B_{2} := \{(x, y) ∈ ℝ^{2} | x + y > 0\} ∪ B_{1} := \{(x, y) ∈ ℝ^{2} | \{ \begin{matrix}x + y = 0 \\ x > 0 \end{matrix} \}

[figure: The full dots represent the skeleton of B; the shadowed area B_{2}; and the halfline from the origin B_{1}; •; •; •; •; •; •; •; •; •; •; •; •; •; •; •; •; •; •; •; •; •; •; •; •; ∘; ∘; ∘; ∘; ∘; ∘; ∘; ∘; ∘; ∘; ∘; ∘; ∘; ∘; ∘; ∘; ∘; ∘; ∘; ∘; ∘; ∘; ∘; ∘; ∘; ⟵B_{1}; B_{2}; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·]

Example 1.69 Consider the term-ordering τ described by the vector list u := [(1, \sqrt{37})] introduced in the example 1.49. Two of the associated semi-flags are B and C, whose components are, respectively,

\begin{matrix}B_{2} := \{(x, y) ∈ ℝ^{2} | \{x + \sqrt{37}y > 0\} \\ B_{1} := \{(x, y) ∈ ℝ^{2} | \{ \begin{matrix}x + \sqrt{37}y = 0 \\ x > 0 \end{matrix} \} \end{matrix} and \begin{matrix}C_{2} := \{(x, y) ∈ ℝ^{2} | \{x + \sqrt{37}y > 0\} \\ C_{1} := \{(x, y) ∈ ℝ^{2} | \{ \begin{matrix}x + \sqrt{37}y = 0 \\ y > 0 \end{matrix} \} \end{matrix}

[figure: •; •; •; •; •; •; •; •; •; •; •; •; •; •; •; •; •; •; •; •; •; •; •; •; ∘; ∘; ∘; ∘; ∘; ∘; ∘; ∘; ∘; ∘; ∘; ∘; ∘; ∘; ∘; ∘; ∘; ∘; ∘; ∘; ∘; ∘; ∘; ∘; ∘; {↑ \atop B_{1}}; B_{2}; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; •; •; •; •; •; •; •; •; •; •; •; •; •; •; •; •; •; •; •; •; •; •; •; •; ∘; ∘; ∘; ∘; ∘; ∘; ∘; ∘; ∘; ∘; ∘; ∘; ∘; ∘; ∘; ∘; ∘; ∘; ∘; ∘; ∘; ∘; ∘; ∘; ∘; {↑ \atop C_{1}}; C_{2}; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·; ·]
Note that S_{B} ∩ B_{1} = ∅ = S_{C} ∩ C_{1}

1.2.3 Finding orderings

Problem 1.70 Let R := k[x_{1}, …, x_{n}], {f_{1}, …, f_{k}} ⊂ R and t_{i} ∈ Supp (f_{i}), i : 1 … k. We want to find if there exists a term-ordering τ such that Lt_{τ} (f_{i}) = t_{i}.

Proposition-Definition 1.71 Let R := k[x_{1}, …, x_{n}], τ, σ ∈ TO(R) and F := {f_{1}, …, f_{k}} ⊂ R. Then τ is equivalent to σ with respect to F (τ ∼_{F} σ) if Lt_{τ} (F) = Lt_{σ}(F). The relation ∼_{F} is an equivalence relation.

Proof. Easy check. □

Definition 1.72 Let R := k[x_{1}, …, x_{n}], τ ∈ TO(R) and F := {f_{1}, …, f_{k}} ⊂ R. The the set of all half-lines associated to a term-ordering equivalent to τ is C_{τ} (F) ⊂ (ℝ^{n})^{+}. If \underline{σ} is an equivalence class with respect to ∼_{F}, C\underline{σ}(F) is well defined.

Remark 1.73 Let R := k[x_{1}, …, x_{n}], {f_{1}, …, f_{k}} ⊂ R and t_{i} ∈ Supp (f_{i}), i : 1 … k. Then the termorderings τ for which Lt_{τ} (F) = t_{i} are the term-orderings τ solutions of the system

{ t_{i} >_{τ} m m ∈ Supp (f_{i}) − t_{i}, i : 1 … k  (1.4)

Proposition 1.74 With the notation of the remark above, a term-ordering τ is a solution of system 1.4 if and only if its associated matrix u := (u_{i,j}) is a non trivial solution of the list of the systems of linear equation/inequalities (in the u_{i,j} variables), in the sense that it has to fulfill at least one of the systems below.

{ u_{1} · (log(Lt_{σ}(f_{i})) − log(m)) > 0 m ∈ Supp (f_{i})i : 1 … k  (1.5)

\{ \begin{matrix}u_{1} · (log(Lt_{σ}(f_{i})) − log(m)) = 0 & m ∈ Supp (f_{i})i : 1 … k \\ u_{2} · (log(Lt_{σ}(f_{i})) − log(m)) > 0 & m ∈ Supp (f_{i})i : 1 … k \end{matrix}  (1.6)

⋮ ⋮

\{ \begin{matrix}u_{1} · (log(Lt_{σ}(f_{i})) − log(m)) = 0 & m ∈ Supp (f_{i})i : 1 … k \\ ⋮ & ⋮ \\ u_{n−1} · (log(Lt_{σ}(f_{i})) − log(m)) = 0 & m ∈ Supp (f_{i})i : 1 … k \\ u_{n} · (log(Lt_{σ}(f_{i})) − log(m)) > 0 & m ∈ Supp (f_{i})i : 1 … k \end{matrix}  (1.7)

Proof. This is only a rewriting of theorem 1.43. □

Corollary 1.75 The interior, with respect to the usual euclidean topology, of the union of the set of the solution of the systems in proposition 1.74 is a non-void polyhedral cone in (ℝ^{n})^{+} with vertex in the origin.

Proof. The solutions of system (1.5) are the intersection of half-spaces comprising the origin, hence the interior of the subset of (ℝ^{n})^{+} they make is a non-void polyhedral cone in (ℝ^{n})^{+} with vertex in the origin. The solution of the other systems are on the boundary of such cone. □

Corollary 1.76 1. In C_{σ}(F) there exists a vector belonging to (ℕ^{n})^{+}. hence, in every equivalence class with respect to F there is a term-ordering whose first vector belongs to (ℕ^{n})^{+}.

2. It is possible to find such vector by finding the rational solutions of the system of linear inequalities 1.5 and then multiplying the solution by a suitable integer.

Proof. Follows immediately from the discussion above. □

To solve a system of linear inequalities on the rationals, a quite efficient method is the simplex algorithm. It gives a rational solution of the system if such solution exists, or gives notice that the system has no solution. While more complex convex geometry methods are available, namely the Newton polyhedra methods [GS], the simplex algorithms is usually fast enough and very simple to implement [Ro]. Moreover, on the simplex algorithm there exist a huge licterature.

Problem 1.77 Let R := k[x_{1}, …, x_{n}], {f_{1}, …, f_{k}} ⊂ R and t_{i} ∈ Supp (f_{i}), i : 1 … k. We want to find all the term-orderings τ for which Lt_{τ} (f_{i}) = t_{i} which satisfy some constraint such “they are degree compatible” or “they are block orderings for the first r variables” and so on. The solution is simply to add the constraint to the system 1.5 and solve it. For reasonable constraints, and namely for the two cited before, the results of corollary 1.76 hold. See the example below.

Example 1.78 Let R := k[x, y, z, t] and F := x^{2} + xy + y^{2} + t. Let P be the set of potential leading terms of f.

Lt_{lex(x>..)}(f) = x^{2}, hence x^{2} ∈ P.
Lt_{degrevlex(y>..)}(f) = y^{2}, hence y^{2} ∈ P.
Lt_{lex(t>..)}(f) = t, hence t ∈ P.

If xy ∈ P then xy >_{τ} x^{2} and xy >_{τ} y^{2} for some τ ∈ TO(R). But then x >_{τ} y and y >_{τ} x, a contradiction. Thus xy ∉ P. If we restrict our attention to degree-compatible term-orderings, then t ∉ P.

1.3 Module implementation and orderings

1.3.1 Module implementation

Before the description of the classification for the module orderings compatible with the operations and which give the same ordering to every component, it is useful to examine the exact way in which modules are implemented as data structures.

There are two canonical ways of implementing an R := k[x_{1}, …, x_{n}] module M ⊂ R^{r} :

i) the matrix representation, the elements are vectors of R^{r}; or

ii) the polynomial representation, the elements are polynomials of a suitable polynomial ring S ⊃ R in which R is embedded.

Proposition 1.79 Let R := k[x_{1}, …, x_{n}], E_{1}, …, E_{v} be new variables and t_{1}, …, t_{r} terms of k[x, E] linearly independents over k[x]. Then the module morphism

\begin{aligned}ϕ : & R^{r} & ⟶ & k[x, E] \\ & e_{i} & ⇝ & t_{i} \end{aligned}

is injective

Proof. Easy check. □

Remark 1.80 Without loss of generality it is possible to have E = E and {t_{1}, …, t_{r}} = {E, E^{2}, …, E^{r}}. In this case, R^{r} may be embedded in k[x, E]/(E^{r}), and ϕ is a module isomorphism. If nothing is said to the contraire, we are supposed to be in this situation.

Remark 1.81 The submodules of R^{r} are embedded in k[x, E] by the same ϕ the embeds R^{r}.

To operate in ϕ(M), some definition is needed:

Definition 1.82 Let M be a R := k[x_{1}, …, x_{n}]-module and e_{i} the unitary vectors. Then the set {t · e_{i} | t ∈ T^{n}} is the set of the module terms of M and is denoted as MT (M).

Definition 1.83 Let R := k[x, E]. Then the variables E_{1}, …, E_{v} are module variables; if a term x_{1}^{a_{1}} ⋯ x_{n}^{a_{n}}E_{1}^{b_{1}} ⋯ E_{r}^{b_{r}} ∈ k[x, E] divides a term x_{1}^{a′_{1}} ⋯ x_{n}^{a′_{n}}E_{1}^{b′_{1}} ⋯ E_{r}^{b′_{r}} ∈ k[x, E] as module term if x_{1}^{a_{1}} ⋯ x_{n}^{a_{n}} | x_{1}^{a′_{1}} ⋯ x_{n}^{a′_{n}} and E_{1}^{b_{1}} ⋯ E_{r}^{b_{r}} = E_{1}^{b′_{1}} ⋯ E_{r}^{b′_{r}};

Then, we work not in R^{r}, but in its isomorphic image in k[x, E]. The module elements are translated as polynomials, and we are to investigate to which extent it is possible to work with the translation of submodules of R^{r} as ideals.

The main advantage of the representation through the embedding are

a) the homogeneity of the data structure, since systems of generators for both ideals and modules are given by a list of polynomial.

b) the representation of the module elements is naturally sparse.

The main drawback is that, at the implementation level, the additional variables uses more space. Moreover, since polynomials and module elements are treated in the same way, optimizations for the different cases are not natural. The representation through embedding has been used in the PoSSo system. The opposite approach (consider ideals as a special case of modules) has been used in the CoCoA system [CN]. Efficiency comparison between the approaches is quite difficult, since it has to be done in the same system and with the same optimization level. No thorough comparison has been done, but from the author experience with the CoCoA system it seems that the embedding approach leads to easier implementations but is slightly slower, at least without extensive optimization.

Graduations are easily translated by the embedding.

Proposition 1.84 In the hypothesis of proposition 1.79, the morphism ϕ is graded of degree 0 if the module variables E have degree 0. If the module R^{r} has shifts (d_{1}, …, d_{n}), then the morphism ϕ is graded of degree 0 if the module variables E have degree such that the terms t_{1}, …, t_{r} have degrees d_{1}, …, d_{r}. If we want to keep the degree of the module variables standard, we have to introduce additional variables.

Proof. Easy check. □

Example 1.85 Let M := k[x, y](−2)⊕k[x, y](−3) be a k[x, y] module graded by the standard graduation. Then the morphism

\begin{matrix}M & @ > ϕ >> & k[x, y, E_{1}, E_{2}] \\ e_{i} & ⇝ & E_{i} \end{matrix}

is graded of degree 0 if on k[x, y, E_{1}, E_{2}] we put system of weights (1, 1, 2, 3). If we want the standard graduation of the overring, we use

\begin{matrix}M & @ > ψ >> & k[x, y, E_{1}, E_{2}, d_{1}, d_{2}] \\ e_{1} & ⇝ & E_{1}d_{1}^{2} \\ e_{2} & ⇝ & E_{2}d_{1}^{3} \end{matrix}

The matrix notation may be quite handy for a module. Let M := (< x, y, 1 >, < x^{2} + 1, 0, 3 >, < 0, xyz, 1 >) ⊂ k[x, y, z]^{3} with the matrix notation M is represented as

[ \begin{matrix}x & y & 1 \\ x^{2} + 1 & 0 & 3 \\ 0 & xyz & 1 \end{matrix} ]

1.3.2 Module orderings

Since the algorithms that we are interested in are strongly dependent from the ordering, to be useful the embedding has to be ordered. The proof that for every compatible module ordering which give the same ordering to every component there exists a suitable embedding such that ϕ is ordered is the last part of this chapter. From this proof follows the classification of the such module term-orderings (theorem 1.88). The operations we are interested in, and their module interpretations/optimizations, use these orderings. More general module orderings are encountered, especially in problems coming from differential algebra and differential equation solving. In this setting the classification problem has been studied for Riquier orderings by Riquier [Ri], Thomas [Th] and others. More recently, Carrà-Ferro and Sit [CSi] have studied more general, non-Riquier module orderings. Reid and Rust [Ru, Ru2, RR] have classified all module orderings, after proving that there exists more module orderings that the ones considered by Carrà-Ferro and Sit. For a complete discussion on the literature, see [Ru].

Definition 1.86 Let M be a free R module, {e_{i}}_{i∈S} its unitary vectors and τ ∈ TO(T^{n}) then

1. the set MT (M) := {t e_{i} | t ∈ T^{n}} is the set of the module-terms of M;

2. let a, b ∈ T^{n} and m, n ∈ MT (M). Then, a Riquier ordering μ is a total ordering on MT (M)such that

a >_{τ} b ⇒ am >_{μ} bm , m >_{μ} n ⇒ am >_{μ} an and m e_{i} > n e_{i} ⇒ m e_{j} > n e_{j} ∀ j ∈ S

If a e_{1} > e_{1} ∀ a ∈ T^{n}, then μ is a Riquier term-ordering.

Some examples of Riquier ordering are given in example 1.95-1.97.

Example 1.87 Let R := k[x]^{2} and μ the total module ordering on MT (R) defined by

x^{a} e_{i} >_{μ} x^{b} e_{j} ⇔ \{ \begin{matrix}i = j = 1 and a > b \\ i = j = 2 and a < b \\ i > j \end{matrix}

It is easy to see that μ is a total ordering on R^{2}, but μ is not a Riquier ordering, since x e_{1} >_{μ} 1 e_{1} but x e_{2} <_{μ} 1 e_{2}.

Theorem 1.88 (Classification theorem) Let τ be an ordering on T^{n} and M be a free, finitely generated R-module of rank r. Let μ be a Riquier module ordering on MT (M). Then there are k, (k ≥ 1), variables y_{1}, …, y_{k}, an ordering μ′on k[x, y] and t_{1}, …, t_{r} terms of k[x, y] linearly independent on k[x] such that

1. the module morphism

\begin{matrix}(M, μ) & @ > ϕ >> & (k[x, y], μ′) \\ e_{i} & ⇝ & t_{i} \end{matrix}

is ordered and injective.

2. μ is the restriction of μ′ to ϕ(M).

Proof. Since ϕ is clearly injective, M is isomorphic to ϕ(M). To prove the theorem, it suffices to define a semi-flag B of ℝ^{n+k} such that ϕ is ordered with respect to μ and the ordering μ′ described by the skeleton of B on T^{n+k}.

Let t_{i} be x_{1}^{α_{i,1}}, …, x_{n}^{α_{i,n}} for each 1 ≤ i ≤ r. We associate to every module-term in M a vector in ℝ^{n+k} in a natural way

x^{a a a}e_{i} ⇝ P_{a,i} := (a_{1} + α_{i,1}, …, a_{n} + α_{i,n}, 0, …, \underbrace{1}_{n+i}, …, 0)

Let us consider the subset △ of ℤ^{n} × ℤ^{r} defined by

△ := {P_{a,i} − P_{b,j} | x^{a a a}e_{i} > x^{bbb}e_{j}}

note that there are two kinds of the elements in △:

(a_{1} − b_{1}, …, a_{n} − b_{n}, 0, …, 0) given byP_{a,i} − P_{b,i}

(a_{1} − b_{1}, …, a_{n} − b_{n}, 0, …, \underbrace{1}_{n+i}, …, \underbrace{−1}_{n+j}, …, 0) given by P_{a a a,i} − P_{bbb,j}.

Note also that 0 ∉ △.

Claim 1.89 There exists a convex subset C ⊂ ℝ^{n+k} which contains △ but not the origin.

Since a semi-flag of ℝ^{n+k} is a maximal convex subset of ℝ^{n+k} which does not contain the origin, there exists a semi-flag B which contains C, and hence △. The skeleton of B defines a term-ordering μ′. Since the skeleton of B contains △, we have that

x^{a a a}e_{i} >_{μ} x^{bbb}e_{j} ⇔ (a_{1} − b_{1}, …, a_{n} − b_{n}, 0, …, \underbrace{1}_{n+i}, …, \underbrace{−1}_{n+j}, …, 0) ∈ △
⇔ ϕ(x^{a a a}e_{i}) = x^{a a a}y_{i} >_{μ′} x^{bbb}y_{j} = ϕ(x^{bbb}e_{j})

Hence ϕ is ordered with respect to μ and μ′. Proof of the claim.

Let C := {∑_{i} c_{i}P_{i} | P_{i} ∈ △ and ∑_{i} c_{i} = 1}, e. g. the convex hull of △. We have that △ ⊂ C ⊂ ℝ^{n+k}. Then we have only to prove that C does not contain the origin. Looking for a contradiction, we suppose that there exist δ_{1}, … δ_{v} ∈ △ such that

∑_{i=1}^{v} c_{i}δ_{i} = 0  (1.8)

where the ∑_{i} c_{i} ≥ 0. If the set of c_{i}’s which satisfy (1.8) has real points, then it has rational (and hence integer) points. Thus disproving (1.8) for integer c_{i}’s is enough. We then consider the list L := [ \underbrace{δ_{1}, …, δ_{1}}_{c_{1}}, …, \underbrace{δ_{v}, …, δ_{v}}_{c_{v}}] and rewrite equation (1.8) as

∑_{δ∈L} δ = 0  (1.9)

Either all the elements of L have the last r components null, or they don’t. If they don’t, there exists in L an element δ whose 1 i^{th}, n + 1 ≤ i ≤ n + r component is 1. By equation (1.9) there exists δ′ in L whose i^{th} component is −1. Then let L′ := L − {δ, δ′} ∪ {δ + δ′}. The vector δ + δ′ belong to △ since μ is compatible with the monoid operation, and the sum ∑_{δ∈L′} is still equal to zero. Since every application of the above process to L gives a list with a lesser number of elements, after a finite number of iterations all the elements of L are in △ and have the last r components null. Thus, every element δ_{i} = (c_{1}^{i}, , c_{n}^{i}, 0, …, 0) of L comes from an inequality x^{^{a a a}^{i}}e_{l_{i}} > x^{^{bbb}^{i}}e_{l_{i}}, where a_{i} is the vector of the positive c_{i}^{j} and b_{i} is the vector of the negative c_{i}^{j}. Since μ is a Riquier ordering, we may suppose that l_{i} = 1 ∀i. That implies

x^{∑_{i} a_{i}} > x^{∑_{i} b_{i}} ⇒ ∑_{i}(a_{i} − b_{i}) ≠ 0 ⟹ ∑_{δ∈L} δ ≠ 0

a contradiction. □

Remark 1.90 From theorem 1.88, the classification of Riquier orderings derives easily from the classification of ring orderings.

Remark 1.91 The obvious representation of an element of M as n-tuple of elements of k[x] is not convenient from the efficiency point of view, unless the term-ordering is “lexicographic on the components”, e. g. te_{i} > me_{j} if i < j. Only in this case, if the polynomials are represented as usual as sum of monomials in decreasing order, the leading term is the first non zero term. The representation of module elements as polynomials thorough ϕ and μ′ should more efficient in the general case. The implementations of polynomial data structure and arithmetics, and the relative optimization of the polynomial with respect to module operations are crucial to this matter.

1.3.3 Some interesting module term-orderings classes

From the point of view of computational commutative algebra, there are two classes of Riquier termorderings which are especially significant, the Riquier term-orderings based on a ring term-ordering plus position considerations (cfr. example 1.95) and the ”weighted” Riquier term-orderings associated to syzygies and resolutions computations [C, MM] (cfr. example 1.96-1.97).

Definition 1.92 Let M be a free R-module of rank r and τ ∈ TO(T^{n}). A Riquier module term-ordering μ on M is a

To+Pos^{+} term-ordering if t e_{i} >_{μ} t′e_{j} ⟺ t >_{τ} t′ or t = t′ and i > j;
To+Pos^{−} term-ordering if t e_{i} >_{μ} t′e_{j} ⟺ t >_{τ} t′ or t = t′ and i < j;
Pos+To^{+} term-ordering if t e_{i} >_{μ} t′e_{j} ⟺ i > j or i = j and t >_{τ} t′;
Pos+To^{−} term-ordering if t e_{i} >_{μ} t′e_{j} ⟺ i < j or i = j and t >_{τ} t′.

Definition 1.93 Let M be a free R-module of rank r, τ ∈ TO(T^{n}) and t_{1}, …, t_{r} be terms in T^{n}. A Riquier module term-ordering μ on M is a weighted term-ordering with respect to the terms m_{1}, …, m_{r} in T^{n} if

t e_{i} >_{μ} t′ e_{j} ⟹ tm_{i} >_{τ} t′m_{j} or tm_{i} = t′m_{j} and i > j

The matrices associated to the ring term-ordering τ and lex(x_{1} > ⋯ > x_{r}) will be denoted by Γ_{τ} and Γ_{lex_{r}} respectively.

Remark 1.94 Using the notation of the classification theorem, it is easy to see that given a free, finitely generated R-module M, there is a considerable degree of freedom in the choice of the overring and of the embedding associated to a given module term-ordering. In the following we exhibit two different choices of overring (with term-ordering and associated matrix) and embedding for several examples. Clearly, the smaller the number of new variables introduced, the more efficient is the handling of the ordering.

Example 1.95 With the notation introduced above, A possible choice of overring and embedding for the To+Pos^{+} module term-ordering is

\begin{aligned}ϕ : & M & ⟶ & k[x, y] \\ & e_{i} & ⇝ & y_{i} \end{aligned}  Γ_{μ′} := [\begin{matrix}[Γ_{τ}] & 0 \\ 0 & [Γ_{lex_{r}}] \end{matrix}]

Another choice is

\begin{aligned}ϕ : & M & ⟶ & k[x, y] \\ & e_{i} & ⇝ & y^{i} \end{aligned}  Γ_{μ′} := [ \begin{matrix}[  Γ_{τ} ] & 0 ⋮ 0 \\ 0 ⋯ 0 & 1 \end{matrix} ]

Example 1.96 With the notation introduced above, A possible choice of overring and embedding for the weighted (with respect to the terms m_{1}, …, m_{r} in T^{n}) module term-ordering is

\begin{aligned}ϕ : & M & ⟶ & k[x, y] \\ & e_{i} & ⇝ & y_{i} \end{aligned}  Γ_{μ′} := [\begin{matrix}[  Γ_{τ} ] & [\begin{matrix}u_{1} · Log(m_{1}) & ⋯ & u_{1} · Log(m_{r}) \\ ⋮ & ⋮ & ⋮ \\ u_{n} · Log(m_{1}) & ⋯ & u_{n} · Log(m_{r}) \end{matrix}] \\ [  0 ] & [  Γ_{lex_{r}} ] \end{matrix} ]

where Γ_{τ} := (u_{1}, …, u_{n}).

If the number of variables x is n, another choice is

\begin{aligned}ϕ : & M & ⟶ & k[x, y] \\ & e_{i} & ⇝ & m_{i}y^{n−i+1} \end{aligned}  Γ_{μ′} := [ \begin{matrix}[  Γ_{τ} ] & 0 ⋮ 0 \\ 0 ⋯ 0 & −1 \end{matrix} ]

Note that μ′ is not a term-ordering on k[x, y], but its restriction to ϕ(M) is.

Let us examine in detail a weighted term-ordering.

Example 1.97 Let M be the module (k[x_{1}, x_{2}])^{3}. The term-ordering τ on k[x] is deglex(x_{1} > x_{2}) and the compatible module term-ordering μ on M is the multiweigthed module term-ordering with respect to the terms x_{1}^{5}, x_{1}^{4}x_{2}, x_{1}^{3}x_{2}^{2}. A possible choice of overring and embedding is

\begin{aligned}ϕ : & M & ⟶ & k[x_{1}, x_{2}, y_{1}, y_{2}, y_{3}] \\ & e_{i} & ⇝ & y_{i} \end{aligned}  Γ_{μ′} := [ \begin{matrix}1 & 1 & 5 & 5 & 5 \\ 1 & 0 & 5 & 4 & 3 \\ 0 & 0 & 1 & 0 & 0 \\ 0 & 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 0 & 1 \end{matrix} ]

Another choice of overring and embedding is

\begin{aligned}ψ : & M & ⟶ & k[x_{1}, x_{2}, y] \\ & e_{1} & ⇝ & x_{1}^{3}x_{2}^{2}y \\ & e_{2} & ⇝ & x_{1}^{4}x_{2}y^{2} \\ & e_{3} & ⇝ & x_{1}^{5}y^{3} \end{aligned}  Γ_{μ′} := [ \begin{matrix}1 & 1 & 0 \\ 1 & 0 & 0 \\ 0 & 0 & 1 \end{matrix} ]

Such orderings are in fact ring block orderings on the overring.

Hereafter, all the ring term-orderings considered will be rational; the matrices associated to the ring term-ordering τ will be denoted by Γ_{τ}.

Remark 1.98 Using the notation of the classification theorem, it is easy to see that given a free, finitely generated R-module M, there is a considerable degree of freedom in the choice of the overring and of the embedding associated to a given module term-ordering. In the following we exhibit two different choices of overring (with term-ordering and associated matrix) and embedding for several examples.

Example 1.99 Let lex be the lexicographic term-orderingon k[y]. With the notation introduced in the theorem 1.88, a possible choice of overring and embedding for the To+Pos^{+} module term-ordering is

\begin{aligned}ϕ : & M & ⟶ & k[x, y] \\ & e_{i} & ⇝ & y_{i} \end{aligned}  Γ_{μ′} := [\begin{matrix}[Γ_{τ}] & 0 \\ 0 & [Γ_{lex}] \end{matrix}]

and μ′ = τ × lex. Another choice is

\begin{aligned}ϕ : & M & ⟶ & k[x, y] \\ & e_{i} & ⇝ & y^{i} \end{aligned}  Γ_{μ′} := [ \begin{matrix}[ Γ_{τ} ] & 0 ⋮ 0 \\ 0 ⋯ 0 & −1 \end{matrix} ]

and μ′ = τ × lex Note that μ′ is not a term-ordering on k[x, y], but its restriction to ψ(M) is a termordering.

There are orderings on the overring that are not induced by a Riquier ordering of M via the embedding, like the following

Example 1.100 Let M := (k[x, y])^{2}, τ and μ be as in example. Then the term-ordering μ′ on M given by the matrix

[ \begin{matrix}0 & 1 & 0 \\ 1 & 0 & 0 \\ 0 & 0 & 1 \end{matrix} ]

is not compatible with μ through ψ, since x_{2} e_{3} >_{μ} x_{1} e_{1} but ψ(x_{2} e_{3}) = x_{1}^{5}x_{2}y^{3} <_{μ′} x_{1}^{4}x_{2}^{2}y = ψ(x_{1} e_{1}).

1.4 Hilbert Functions and Poincaré series

In this section we give a very short description of some features of Hilbert function theory which are useful for the optimization of the operations we are interested with. Some further details are shown in chapter 2, when we discuss the use of the Hilbert function for the optimization of the Buchberger algorithm.

Definition 1.101 Let w be a system of weights, R := k[x_{1}, …, x_{n}] be a w graded ring and M be a w graded R module. The function

\begin{aligned}H_{M}^{w} : & ℕ^{m} & ⟶ & ℕ \\ & d & ⇝ & dim_{k}(M_{d}) \end{aligned}

is the Hilbert function of M with respect to w.

Definition 1.102 With the notation of the preceding definition, the series

HP_{M}^{w}(λ) := ∑_{d∈ℕ^{m}} H_{M}^{w}(d)λ^{d} ∈ ℤ[[λ_{1}, …, λ_{m}]]

is the Poincaré series of M with respect to w.

When there is no danger of ambiguity, we write H_{M} instead of H_{M}^{w} and HP_{M} instead of HP_{M}^{w}.

The following lemma collect several basic facts on Poincaré series.

Lemma 1.103 Let w be a system of weights R := k[x_{1}, …, x_{n}] a w graded ring, I a w homogeneous ideal of R and σ ∈ TO(T^{n}). Then

Macaulay Theorem HP_{R/I}^{w} = HP_{R/Lt_{σ}(I)}^{w}

Hilbert-Serre Theorem There exists f ∈ ℤ[λ_{1}, …, λ_{m}] s.t. HP_{R/I}^{w}(λ_{1}, …, λ_{m}) = \frac{f(λ_{1},...,λ_{m})}{∏_{i=1}^{n} (1−λ^{∂w(x_{i})})}

Ring formula [Euler] HP_{R}^{w}(λ) = ∏_{i=1}^{n} \frac{1}{(1−λ^{∂w(x_{i})})}

Proof. Macaulay and Hilbert-Serre theorems are classical results. It is well known that the coefficient of the term of w degree β in the series inverse of ∏_{i=1}^{n} \frac{1}{(1−λ^{∂w(x_{i})})} is the number of positive solutions of the system of diofantine equations

{α_{1}∂_{w}(x_{1}) + … + α_{n}∂_{w}(x_{n}) = β

The proof of the ring formula comes easily from that fact. □

Lemma 1.104 Let w be a system of weights, R := k[x_{1}, …, x_{n}] be a w graded ring,, M ⊂ R^{r} be a w graded R module and τ ∈ TO(M). Then, if (Lt_{τ} (M))_{i} are the leading terms of M which lies in the i-th component, then

HP_{M}^{w}(λ) := ∑_{i:=1}^{r} HP_{(Lt_{τ} (M))_{i}}^{w}(λ)

Hence, if M has rank r, then

HP_{R^{r}/M}^{w}(λ) := ∑_{i:=1}^{r} HP_{(R/(Lt_{τ} (M))_{i})}^{w}(λ)

Moreover, we have

HP_{M(−∂_{w}(F))}^{w}(λ) = λ^{∂_{w}(F)}HP_{M}^{w}(λ)

Proof. Easy check. □

Definition 1.105 With the notation of lemma 1.103, we denote by ⟨ I ⟩^{w} or simply by ⟨ I ⟩ the polynomial f(λ_{1}, …, λ_{m}) and we call it the HP -numerator of I with respect to w. If M is an R module the definition of ⟨M⟩ is analogous to the definition of ⟨I⟩.

Remark 1.106 The computation of H_{R/I}^{w} from HP_{R/I}^{w} = \frac{f(λ_{1},...,λ_{m})}{∏_{i=1}^{n} (1−λ^{∂w(x_{i})})} is quite easy. It suffices to invert the series to the denominator and then multiply the result by f to get the canonical representation of the Poincaré series from which it is immediate to read the Hilbert function. In the module case, by lemma 1.104, it suffices to sum the Hilbert functions of the leading term ideals of the components. For type one graduations, there are handy closed formulas, see e. g. [R3]. For higher type graduations, the things are a bit more complex.

Proposition 1.107 Let 0@ >>> M@ > f >> N@ > g >> Q@ >>> 0 be a graded short exact sequence of A modules of degree 0. Then the functor

dim _{k}(·) : {A modules free, f.g.} ⟶ ℕ

is additive on the sequence (e. g. dim _{k}(N) = dim _{k}(M) + dim _{k}(P)).

Proof. Easy check. □

22 CHAPTER 1. COMPUTATIONAL RINGS AND MODULES Corollary 1.108 Let M, N, P be R free, finitely generated R modules. Then

1. If 0 → M →^{f} N →^{g} P → 0 is a graded short exact sequence of degree 0 then

H_{N}^{w}(d) = H_{M}^{w}(d) + H_{P}^{w}(d) ∀d ∈ ℤ^{n}

and

HP_{N}^{w}(d) = HP_{M}^{w}(d) + HP_{P}^{w}(d) ∀d ∈ ℤ^{n}

2. If M, N are R modules then HP_{M⊕N}^{w} = HP_{M}^{w} + HP_{N}^{w} (H_{M⊕N}^{w} = H_{M}^{w} + H_{N}^{w}). Proof. Follows from the Hilbert function definition and lemmas 1.103 and 1.104 □

1.4.1 Main formula

Proposition 1.109 Let w be a system of weights, R := k[x_{1}, …, x_{n}] be a w graded ring, M be a w graded R module and F be an homogeneous element of M. Then

a) the sequence

0 → (\frac{M}{(0 :_{M}(F))M} ) (−∂_{w}(F)) →^{·F} M →^{π} \frac{M}{F M} → 0

is a short graded sequence of degree 0. b)

HP(\frac{M}{F M})^{w}(λ) = HP_{M}^{w}(λ) − λ^{∂_{w}(F)}HP_{( \frac{M}{(0 :_{M}(F))M} )}^{w}(λ)

Proof. The proof of a) is an easy check. The proof of b) follows from the proposition 1.108 and a). □ Corollary 1.110 Let I be an homogeneous ideal of R := k[x_{1}, …, x_{n}] and w a system of weights. Then

HP_{R/(I,F)}^{w}(λ) = HP_{R/I}^{w}(λ) − λ^{∂_{w}(F)}HP_{R/(I:(F))}^{w}(λ)

or, using the ⟨·⟩ notation,

⟨I, F ⟩^{w} = ⟨I⟩^{w} + λ^{∂_{w}(F)}⟨I : (F)⟩^{w}[main formula]

Another useful formula comes from the following Proposition 1.111 Let w be a system of weights, R := k[x_{1}, …, x_{n}], and M, N ⊂ R^{r} w graded R modules. Then the short sequence

0@ >>> M ∩ N@ >>> M ⊕ N@ >>> M + N@ >>> 0

is a w graded short exact sequence of degree 0. Hence

⟨M + N⟩^{w} = ⟨M⟩^{w} + ⟨N⟩^{w} − ⟨M ∩ (N)⟩^{w} [intersection formula]

Proof. Follows from corollary 1.108 b). □

Proposition 1.112 Let R := k[x_{1}, …, x_{n}], I := (t_{1}, …, t_{r}) be a monomial ideal of R and t ∈ T^{n}. Let a, b ∈ ℤ and

a ⊖ b := \{ \begin{matrix}a − b & if a − b > 0 \\ 0 & otherwise \end{matrix}

Then

\begin{aligned}I : (F) & = (t_{1}, …, t_{r}) : (t)) \\ & = (x_{1}^{a_{1}^{1}} ⋯ x_{n}^{a_{n}^{1}}, …, x_{1}^{a_{1}^{r}} ⋯ x_{n}^{a_{n}^{r}}) : (x_{1}^{b_{1}} ⋯ x_{n}^{b_{n}}) \\ & = (x_{1}^{a_{1}^{1}⊖b_{1}} ⋯ x_{n}^{a_{n}^{1}⊖b_{n}}, …, x_{1}^{a_{1}^{r}⊖b_{1}} ⋯ x_{n}^{a_{n}^{r}⊖b_{n}}) \end{aligned}  (1.10)

and

\begin{aligned}I ∩ (F) & = (t_{1}, …, t_{r}) ∩ (t)) \\ & = (x_{1}^{a_{1}^{1}} ⋯ x_{n}^{a_{n}^{1}}, …, x_{1}^{a_{1}^{r}} ⋯ x_{n}^{a_{n}^{r}}) ∩ (x_{1}^{b_{1}} ⋯ x_{n}^{b_{n}}) \\ & = (x_{1}^{a_{1}^{1}+b_{1}} ⋯ x_{n}^{a_{n}^{1}+b_{n}}, …, x_{1}^{a_{1}^{r}+b_{1}} ⋯ x_{n}^{a_{n}^{r}+b_{n}}) \end{aligned}  (1.11)

Proof. Easy check. □

Remark 1.113 Using propositions 1.110, 1.111 and 1.112, it is easy to develop algorithms for the effective computation of the H numerator of a ring. The Poincaré series and Hilbert functions are built very easily once the H numerator is known. Since it lowers the degrees, the main formula is more useful than the intersection formula. Proposition 1.104 reduces the computation of module Hilbert functions to the computation of ring Hilbert functions.

1.4.2 M-regular sequences

Definition 1.114 Let w be a system of weights, R := k[x_{1}, …, x_{n}], M be a w graded R module and F_{1}, …, F_{k} be homogeneous polynomials of R. Then (F_{1}, …, F_{k}) is a M-regular sequence if F_{i} ∉ ZD(M/IM) for each i : 1 … k, where I is generated by the first i − 1 polynomials.

Proposition 1.115 Let R := k[x_{1}, …, x_{n}], w be a system of weights, M be a w graded R module and I = (F_{1}, …, F_{k}) ⊆ R. Then

HP_{M/IM}(λ) = HP_{M}(λ) ∏_{i=1}^{k}(1 − λ_{i}^{∂_{w}(F_{i})})

if and only if (F_{1}, …, F_{k}) are a M regular sequence.

Proof. Follows from the main formula. □

Corollary 1.116 For a list F_{1}, …, F_{k} of polynomials the be a regular sequence is independent from the order of the polynomials in the list.

Regular sequences are important here because for ideals generated by regular sequences the computation of the Hilbert function is quite easy. That is useful for the Hilbert-Driven algorithms, see chapter

1.4.3 Some useful formula

From the main formula, we deduce some useful formulas for the computation of Poincaré series.

Remark 1.117 Let w be a system of weights, R := k[x_{1}, …, x_{n}] be a w graded ring, I be an homogeneous ideal of R and F ∈ R homogeneous.

a) ⟨0⟩ = 1;

b) ⟨1⟩ = 0;

c) ⟨F ⟩ = 1 − λ^{∂_{w}(F)};

d) ⟨F I⟩ = 1 − λ^{∂_{w}(F)} + λ^{∂_{w}(F)}⟨I⟩;

e) ⟨I, F ⟩ = ⟨I⟩ − λ^{∂_{w}(F)}⟨I : (F)⟩.

f) ⟨I⟩ = ⟨I, F ⟩ + λ^{∂_{w}(F)}⟨I : (F)⟩.

g) ⟨I⟩ = ⟨I⟩ + (1 + λ^{∂_{w}(F)}) + ⟨I ∩ (F)⟩.

Proof. The proofs of a)-c) is an easy check. e) is the main formula, f) is a rewriting of the main formula and g) is the intersection formula. Let us prove d) by induction on n, the number of generators of I. If n = 1, the formula follows easily from the main formula. If n > 1, then let I = (t_{1}, …, t_{k}). From the main formula it follows that ⟨x^{a}(t_{1}, …, t_{k})⟩ = ⟨x^{a}(t_{2}, …, t_{k})⟩ − λ^{|a|+deg(t_{1})}⟨(x^{a}(t_{2}, …, t_{k})) : (x^{a}t_{1})⟩ = 1 − λ^{|a|} + λ^{|a|}⟨t_{2}, …, t_{k}⟩ − λ^{|a|+deg(t_{1})}⟨(t_{2}, …, t_{k})) : (t_{1})⟩ = 1 − λ^{|a|} + λ^{|a|}⟨t_{1}, …, t_{k}⟩. □

Definition 1.118 The polynomial (usually a term) F is the pivot of the main formula. Different choice strategies for the pivot give different algorithm for the Poincaré series computation.

Lemma 1.119 Let w be a system of weights, R := k[x_{1}, …, x_{n}] and M be a w graded R module. If M = m_{1}, …, m_{k} and the elements m_{i} can be partitioned in the lists M_{1}, …, M_{p} is such a way that the sets of the variables that appear in a list M_{i} are mutually disjoint, then

⟨M⟩ = ∏_{i=1}^{p} ⟨M_{i}⟩

Proof. A consequence of the main formula. □

This lemma allows us a useful simplification of the computation of the Poincaré series series in several easy cases.

Algorithm 1.120 HF

Input L list of terms of k[x_{1}, …, x_{n}], w system of weights. Output ⟨(L)⟩^{w}.

begin L :=Interreduced(L) if L = (t, t′) then return 1 − λ^{∂_{w}(t)} − λ^{∂_{w}(t′)}(1 − λ^{|∂_{w}(t)⊖∂_{w}(t′)|}) if L = (L′, x^{a_{1}}, …, x^{a_{k}}), a_{i} ∈ ℕ then return ⟨L′⟩^{w}(1 − λ^{∂_{w}(a_{1}})) ⋯ (1 − λ^{∂_{w}(a_{k})}) if L = (L_{1}, …, L_{k}) with the lists L_{1}, …, L_{k} s.t. their variable are disjoint

then return ⟨L_{1}⟩^{w} ⋯ ⟨L_{k}⟩^{w}

choose x^{a a a} pivot for L

Compute J := list of generators of (L) : (x^{a a a})

return ⟨(L, x^{a a a})⟩^{w} + λ^{∂_{w}(a)}⟨J⟩^{w} end

The correctness of the algorithm, if it terminates, follows immediately from remark 1.117 and lemma 1.119. The termination is guaranteed if the choice of the pivot is such that (L, x^{a a a}) is less complex (with respect to the number of genberators, the degree or some other criterion) than L.

Remark 1.121 This is not he place for a detailed discussion of the algorithms for the computation of the Hilbert Function, for which we refer to [BS, BCR, BCRT, B]. The most efficient algorithms use the main formula with carefully studied pivot choice strategies. It seems that the optimal strategies are different in the unigraded and multigraded cases. The main choices are between the power of a variable and the GCD of some terms in the list L. In the first case, the internal machinery in the algorithm are optimized, while in the second case the number of steps is lower. It seems that the variable pivot is best when the system of weights has type one, while for higher type systems of weights the GCD pivot is the best choice. Moreover, substantial optimizations are possible in the addition/multiplication giving the result polynomial, especially in the type one case. See [B] for a complete analisys. Here, it suffices to say that the computation of the Hilbert function is usually very fast with respect to the computation of the operations we are interested with, and hence it is possible to use the Hilbert function as a tool during these computations. We remark that to compute a Poincaré series of an ideal with respect to a high type system of weights is much less efficient than compute the Poincaré series of the same ideal with respect to a type one system of weights, see example 2.27.

The computation of a Poincaré series is usually very fast for examples coming from Gröbner basis computations (e. g. of interest here) and when the type of the system of weights is one. For some timing, see section 2.6

Sometimes it is useful to compute a Poincaré series only up to some degree.

Definition 1.122 Let R := k[x_{1}, …, x_{n}] be graded by the system of weights w of type r, τ ∈ TO(ℤ^{r}) and M ⊂ R^{r} be an homogeneous R module. Let d ∈ ℤ^{r}. Then the truncated Hilbert function of M up to degree d is the function

H_{M}^{w,d} : ℕ^{r} @ >>  > ℕ

j  ⇝  \{ \begin{matrix}H_{M}^{w}(j) & for each j ∈ ℕ^{r} and j ≤_{τ} d \\ 0 & otherwise \end{matrix}

and the truncated Poincaré series of M up to degree d is

HP_{M}^{w,d}(λ) := ∑_{d∈ℕ^{m}} H_{M}^{w,d}(d)λ^{d} ∈ ℤ[[λ_{1}, …, λ_{m}]]

The truncated HP -numerator of M with respect to w is ⟨M⟩^{w,d}

Remark 1.123 If the type of w is not small, then the computation of truncated Poincaré series may be substantially cheaper than the computation of the whole Poincaré series, see section 2.6. At least some tricks that may be applied are:

1. eliminate in the input all the terms which w degree is bigger than the truncation.

2. During the computation, eliminate all the branching multiplied by a w degree bigger than the truncation d.

3. During the computation of ⟨I⟩, don’t add terms of w degree lesser than d.

No comprehensive examination has been done on pivot strategies for the truncated algorithm.

Remark 1.124 It may be of interest to compute the terms of ⟨·⟩ only starting from some given w degree, or directly the value of the Hilbert function in d without overhead. It seems that, using some modification of the algorithm here discussed, the savings are not sufficient to justify the increased complexity of the algorithm, but no exhaustive examination has been performed.

1.4.4 Dimension and multiplicity

An exposition of the theory of dimension may be found in [ZS] or [M]. We are here only interested in some brief remarks on the practical computation of dimension and multiplicity.

Proposition 1.125 Let R := k[x_{1}, …, x_{n}], w be a system of weights, τ ∈ TO(R) and I be a w homogeneous ideal of R. Let J := SQFR(Lt_{τ} (I)),

P_{R/I}^{w}(λ) = \frac{⟨I⟩^{w}}{∏_{i}(1 − λ^{∂_{w}(x_{i}))}} (λ, 1, …, 1) = \frac{Q(λ)}{(1 − λ)^{d}} with Q(1) ≠ 0

P_{R/J}^{w}(λ) = \frac{⟨J⟩^{w}}{∏_{i}(1 − λ^{∂_{w}(x_{i}))}} (λ, 1, …, 1) = \frac{Q′(λ)}{(1 − λ)^{d′}} with Q′(1) ≠ 0

Then, we have dim (R/I) = d = d′ and mult(R/I) = Q′(1).

Proof. This is a classical result. For the multigraded case, see 2.31. □

The computation of dimension and multiplicity of an ideal is then immediate if the Poincaré series is known.

There is another algorithm for the computation of the dimension of an ideal that may be useful since it gives explicitly a maximal set of algebraically independent variables. It is usually slower than the one based on Hilbert function.

Lemma 1.126 With the notation of the proposition above, we remark that a the complement with respect to {x_{1}, …, x_{n}} of minimal set of variables S with the property

P: every element of a reduced list of generators of J contains a variable in S

is a maximal set of algebraically independent variables modulo the ideal J, hence I.

Proof. See, for example, [BW], chapter 9. □

Remark 1.127 It is easy to find a maximal set of variables satisfying the property P by a recursive back-tracking algorithm, see [BW], chapter 9.

Remark 1.128 In particular, k[x_{1}, …, x_{n}]/I is zero-dimensional if and only if for every variable there exists an element of the Gröbner basis beginning with a pure power of this variable. Detection of zerodimensional ideals is then easy during the computation of any of theirs Gröbner basis.

Remark 1.129 The computational cost of the computation of the dimension is negligible with respect to the cost of the Gröbner basis computation which gives Lt(I).

Remark 1.130 Everything said in this subsection holds for non-homogeneous ideals if the Gröbner basis is computed with respect to a degree-compatible term-ordering.

Proof. We can homogenize the ideal first, and then compute dimension and multiplicity. These are invariant with respect to the homogeneization, see [ZS]. □

Remark 1.131 For standard graded polynomial rings, it is well known that the Hilbert Function assumes definitely the same values as a polynomial function, the Hilbert Polynomial. If the graduation is non standard, it is easy to see that there exists finitely many polynomials that give the function values definitely. Moreover, there is a simple description of these polynomials using the unity roots. The details are a bit intricate, but quite elementary.

Gröbner Bases

In this chapter we briefly introduce Gröbner bases theory. The usual refinements of the Buchberger algorithm are noted, but not discussed. The variants of the Buchberger algorithm examined in detail are

• the homogeneous variant, section 2.2;

• the Buchberger algorithm for modules, section 2.3;

• the factoring Buchberger variant, section 2.4;

• the Hilbert-Driven and BiHilbert-Driven variants, section 2.5-2.6 and

• the Dynamic variant, section 2.7.

The homogeneous variant is discussed mainly to set the notation for the Hilbert variants and for the resolution algorithm discussed in chapter 3.

2.1 Gröbner bases and Buchberger algorithm

Let R := k[x_{1}, …, x_{n}], I be an ideal of R and τ ∈ TO(R). Among its system of generators, some are particularly useful for the effective computation of the algebraic operation on I.

Definition 2.1 Let R := k[x_{1}, …, x_{n}], F := {f_{1}, …, f_{r}} ⊂ R and τ be a term-ordering on R. If (Lt_{τ} (f_{1}), …, Lt_{τ} (f_{r})) = Lt_{τ} (I), then {f_{1}, …, f_{r}} is a Gröbner basis of the ideal (F) with respect to τ.

There are several equivalent definition of Gröbner basis (see [Bu, MM, R3]). We are here interested in a definition which allows us an easy construction of Gröbner basis.

The notion of normal form is crucial for the computation of Gröbner basis.

Definition 2.2 Let f, g ∈ R := k[x_{1}, …, x_{n}] and τ ∈ TO(R). Then the polynomial

SPoly (f, g) := \frac{Lc_{τ} (g) lcm (Lt_{τ} (f), Lt_{τ} (g))}{Lt_{τ} (f)}f − \frac{Lc_{τ} (g) lcm (Lt_{τ} (f), Lt_{τ} (g))}{Lt_{τ} (g)}g.

is the S-Polynomial of the pair f, g.

The procedure NF gives a reduced form of a polynomial with respect to a list of polynomials and a term-ordering.

Procedure NF

Input f ∈ R, F := {f_{1}, …, f_{r}} ⊂ R, τ ∈ TO(R). Output g ∈ R.

begin h:=0; begin

while ∃g ∈ F s.t. Lt_{τ} (g) | Lt_{τ} (f) do

begin choose g ∈ F s.t. there exists t ∈ T^{n} s.t. Lt_{τ} (g) = t · Lt_{τ} (f); f:=f − \frac{lc(f)}{lc(g)}t · g;

endwhile; if f ≠ 0 then begin

h:=h + Lt_{τ} (f); f:=f − Lt_{τ} (f);

endif; return h;

end.

The procedure NF stops for each f, F, τ, since the leading terms of f keep decreasing with respect to τ at each iteration of the main while of the procedure and τ is a term-ordering.

The above description of the procedure NF is not complete. In fact thre are in general several different choices for the polynomial g which divides f. For each possible choice (for a given input), we have a different procedure. The number of possible choices is finite. Let S := {A^{1}, …, A^{v}} be the set of such procedures. Then, we have the function

\begin{aligned}NF _{F,τ} : & R & ⟶ & ℘(R) \\ & f & ⇝ & \{A_{F,τ}^{1} (f), …, A_{F,τ}^{v} (f)\} \end{aligned}

Definition 2.3 Let R := k[x_{1}, …, x_{n}], τ ∈ TO(R) and F := {f_{1}, …, f_{k}} ⊂ R The set NF _{F,τ} (f) ⊂ R is the set of the normal forms of f with respect to {f_{1}, …, f_{r}} and τ. If NF _{F,τ} (f) is a singleton, the element h ∈ NF _{F,τ} (f) is the normal form of f with respect to F, τ. NF _{F,τ} (f). f is reduced to h through {f_{1}, …, f_{r}}, τ, or f@ > {f_{1}, …, f_{r}}, τ >> h. {f_{1}, …, f_{r}} and τ are omitted if the notation in unambiguous.

Theorem 2.4 Let R := k[x_{1}, …, x_{n}], τ ∈ TO(R) and (F) := (f_{1}, …, f_{r}) be an ideal of R. Then the subsequent propositions are equivalent:

• f_{1}, …, f_{r} is a Gröbner basis of (F) with respect to τ.

• For each f ∈ R, the set NF _{F,τ} (f) is a singleton.

• For each pair f, g ∈ {f_{1}, …, f_{r}}, NF _{F,τ} (SPoly (f, g)) = 0

Definition 2.5 Let R := k[x_{1}, …, x_{n}], τ ∈ TO(R), F := {f_{1}, …, f_{r}} ⊂ R and I := (F). Then the list F is interreduced with respect to τ if, after the substitution of every polynomial f_{i} with NF _{F′,τ} (f), where F′ := F − {f_{i}} the list does not change.

The procedure that transforms a polynomial list F := f_{1}, …, f_{r} in a polynomial list \overline{F} interreduced and such that (F) = (\overline{F}) is the Interreduce procedure. Its implementation is straightforward.

Since the normal form is in general not unique, the interreduced form of a polynomial list is in general not unique.

Definition 2.6 Let R := k[x_{1}, …, x_{n}], τ ∈ TO(R) and F := {f_{1}, …, f_{r}}. Let G be a Gröbner basis of (F) with respect to τ. If G is interreduced, and its elements are monic, then G is a reduced Gröbner basis of (F) with respect to τ.

Theorem 2.7 Let R := k[x_{1}, …, x_{n}], τ ∈ TO(R) and F := {f_{1}, …, f_{r}}. Then the reduced Gröbner basis of (F) with respect to τ, GB((F), τ), is unique.

Proof. See e. g. [Bu]. □

2.1.1 Buchberger algorithm

The Buchberger algorithm computes the Gröbner basis of a list of polynomials with respect to a termordering. Here it is a brief description of the Buchberger algorithm, and then its pseudo-code. The input is the polynomial list G := {g_{1}, …, g_{r}}, of which we want to compute the Gröbner basis, and the term-ordering τ, with respect to which we want the basis. Then we create the pair list L := {(g_{i}, g_{j}) | i ≤ j}. At this point, a pair (g_{i}, g_{j}) ∈ L is chosen and deleted from the list. We then compute f:=NF _{G,τ} (SPoly (g_{i}, g_{j})). If f = 0 another pair in L is chosen, and the cycle begins anew. If f ≠ 0, the polynomial f is added to the list G, to the list L, are added the pairs (g_{i}, f), and the cycle begins anew. The cycle stops when the list L is empty. When the cycle stops, by proposition 2.4 in the list G there is a Gröbner basis of (G) with respect to τ. If a reduced Gröbner basis is wanted, the interreduction of G is then performed.is guaranteed by the noetherianity of R (or, if you prefer, by Dickson’s lemma), since new elements not belonging to {Lt_{τ} (g) | f ∈ G} are added to Lt_{τ} (G) at every cycle that does not delete an element from L.

Some notation: let (g_{i}, g_{j}) a pair in L. Then Lt(i, j) := lcm (Lt(g_{i}), Lt(g_{j})) and Lt(i, j, k) := lcm (Lt(g_{i}), Lt(g_{j}), Lt(g_{k})).

Buchberger algorithm

InputG := {f_{1}, …, f_{r}} ⊆ R, τ ∈ TO(R); Output the reduced Gröbner basis of (G) with respect to τ;

begin L:= generates the initial pairs of G; while L ≠ ∅ do begin

choose (g_{i}, g_{j}) ∈ L ; L:=L − {(g_{i}, g_{j})}; if Lt_{τ} (g_{i}), Lt_{τ} (g_{j}) are not coprimes then

begin g := NF _{G,τ} (SPoly (g_{i}, g_{j})); if g ≠ 0 then begin

update the pairs in L with respect to G and g; G:=G ∪ {g};

endif; endif;

endwhile;

return Interreduce(G); end.

Remark 2.8 If Lt_{τ} (g_{i}), Lt_{τ} (g_{j}) are coprimes, then NF _{G,τ} (SPoly (g_{i}, g_{j})) = 0. This is the coprimality criterion for the pairs.

Remark 2.9 During the execution of the Buchberger algorithm almost all the pairs are reduced to zero. It is then quite useful to have some criteria that predict the reduction to zero of a pair. The more efficient by far are the Gebauer-Möller criteria [GM]. Their use is necessary in practice to have terminating algorithms. Since all the variants here shown use these criteria, and don’t change them except for some redefinition of the divisibility test, we note here only their use and don’t give any detail. Other criteria to predict the reduction to zero of pairs which escaped the Gebauer-Möller criteria are shown in the Hilbert-Driven (section 2.5) and Bi-Hilbert-Driven (section 2.6) variants.

The execution time of the Buchberger algorithm is strongly influenced by the term-ordering with respect to which we want to compute the basis and from the choice strategies for pairs and reductors. A variant of the Buchberger algorithm that exploits the sensibility to orderings changing, the Dynamic Algorithm, is shown in section 2.7

Proposition 2.10 Let R := k[x_{1}, …, x_{n}] and I := (f_{1}, …, f_{k}) be an ideal of R. Then the degree of the polynomials in a Gröbner basis of I is bounded by

((n + 1)(d + 1) + 1)^{(n+1)2^{s+1}}

where s is the Krull dimension of I and d is the maximum degree of the polynomials f_{i}.

Proof. See [Metc] □

In practice, it is uncommon for a computation to reach the theoretical complexity, albeit there are examples that reach it, and several meaningful computations are possible. A prediction of the practical complexity of a given Gröbner basis computation is very difficult, as shown in the subsequent examples, but several good rules of thumb are known.

After much sperimentation, the implementers have reached an accord upon the subsequent facts, some very easy to observe, some more obscure :

• the coefficients and the support of the polynomials involved usually grow during the computations, even if in the final basis they are quite small.

• The pair selection strategy is crucial.

• The reductor selection strategy usually influences only the growth of the coefficient during the reduction computation.

• The choice of the term-ordering is crucial. Different term-orderings give very different Gröbner basis.

• Degree compatible term-orderings, and in particular the degrevlex term-ordering, usually give the fastest computations.

• Lexicographic term-orderings give usually very hard computations. The growth of the coefficient and of the supports during the computations is quite big, even if the final basis is quite simple.

Our work in centered on the optimizations of the ideal-module operations, and thus the details of the optimization of the Buchberger algorithm for the general case are not of interest here. We only note that

• The sugar pair selection strategy, in one of its flavor, is usually useful [GMNRT].

For an analysis of the strategies, see [GMNRT].

Hence, in this work, the Buchberger algorithm is supposed to use the Gebauer-Möller criteria and the sugar pair selection strategy. The reductors are chosen by age : the reductor with the lower index in the basis is used.

2.2 Homogeneous Gröbner bases

The Buchberger algorithm can exploit the homogeneity of an ideal in several ways. There is no major difference in the performance of the algorithm, but the data structure has to be arranged to exploit fully the homogeneity. Moreover, homogeneous ideals are usually easier to compute and less sensitive to the order in which the pairs are processed.

Remark 2.11 Let R := k[x_{1}, …, x_{n}], w be a system of weights and I be an ideal of R. Then I is w homogeneous if the list given by the interreduction of the generators of I is composed only by w homogeneous polynomials.

2.2.1 The homogeneous Buchberger algorithm

Proposition 2.12 Let R := k[x_{1}, …, x_{n}], w a system of weights of type r, τ ∈ TO(R), σ ∈ TO(ℕ^{r}) and f, g, f_{1}, …, f_{r} w homogeneous polynomials of R. Then

a) ∂_{w}(SPoly (f, g)) >_{σ} Max_{σ}(∂_{w}(f), ∂_{w}(g)).

b) f@ > {f_{1}, …, f_{r}}, τ >> h ⟹ h is w homogeneous.

c) S-Poly(f, g) is w homogeneous.

d) f can be reduced only by w homogeneous polynomials of uniformly lesser w degree.

Proof. Easy check. □

If the input polynomials are w homogeneous, the cases b) and c) guarantee that every polynomial processed in the Buchberger algorithm is w homogeneous. Case a) suggests that the polynomial should be kept in increasing w order. Case d) allows us us to reduce substantially the number of candidate divisors for a polynomial, giving a faster reductor search. The procedure NF ^{w} is a version of NF that search for possible reductors only among polynomials whose w degree is uniformly lesser than the w degree of the polynomial being reduced. From what said above, it is obvious that in the homogeneous Buchberger algorithm, the pairs should be processed and kept in increasing w degree order, and the elements of F should be kept in increasing w degree order.

Remark 2.13 To optimize the search for reductors, and some other operations that are introduced in the Hilbert-Driven algorithm 2.5, the list is no more the most efficient structure for the pairs and the reductors.

Definition 2.14 Let R := k[x_{1}, …, x_{n}] and w be a system of weights of type r. Then a w-list is

• an w-list of level 0 is a list of w homogeneous elements ordered by increasing w_{r} degrees.

• a w-list of level i, i : 1 … r is a list of w lists of level i − 1 ordered by increasing w_{i} degrees.

Example 2.15 Let R := k[x, y, z] and w := [\begin{matrix}1 & 1 & 1 \\ 1 & 0 & 0 \end{matrix}] a system of weights for R. Let f_{1} := x^{4}, f_{2} :=

x^{3}y, f_{3} := x^{2}y^{2}, f_{4} := x^{7}, f_{5} := y^{7}. Then the w list of level 2 of f_{1}, …, f_{5} is [[f_{1}, f_{2}, f_{3}], [f_{4}], [f_{5}]].

If reductors are kept in w lists, then the search for reductors is much easier. It is not clear if this fast reductor search counterbalances the increased complexity of the data structure. In cases where the number of reductor is very high (e. g. binomial ideals), the savings may be relevant. Further experiments are needed.

Homogeneous Buchberger Algorithm

Let d be the least w degree of the pairs in L. When the pairs in L degree d are reduced with respect to F, τ, the results are kept in an auxiliary list F′. When all the pairs of degree d have been processed, the polynomials in F′ are interreduced, the pairs of the resulting polynomials are added to L and the polynomial themselves are added to F. The list F′ is emptied. This approach allows us us to use linear algebra for the interreduction of the polynomials of degree d, and avoid the final interreduction of F. Moreover, by d) of proposition 2.12, the only polynomials that may divide the polynomials of w degree d are polynomials whose w degree is uniformly lesser than d.

Input G := {g_{1}, …, g_{r}} ⊆ k[x], homogeneous, τ ∈ TO(R) and w, system of weights for R. Output the reduced Gröbner basis of G with respect to τ;.

begin L:= generates the initial pairs; d:=min_{w}{∂_{w}(SPoly (g_{i}, g_{j})) | (g_{i}, g_{j}) ∈ L}; while L ≠ ∅ do begin

choose (g_{i}, g_{j}) ∈ L s.t. d = ∂_{w}(SPoly (g_{i}, g_{j})); L := L − {(g_{i}, g_{j})}; g := NF _{σ}(SPoly (g_{i}, g_{j}), G); if g ≠ 0 then G′:=G′ ∪ {g}; if d ≠ min_{w}{∂_{w}(SPoly (g_{i}, g_{j})) | (g_{i}, g_{j}) ∈ L} then

begin G′:=Interreduce(G′); L,G:=Upgrade(L, G′, G); L′:=∅; d:=min_{w}{∂_{w}(SPoly (g_{i}, g_{j})) | (g_{i}, g_{j}) ∈ L};

endif; endwhile; return G;

end.

Definition 2.16 Let R := k[x_{1}, …, x_{n}] be a w graded ring, τ ∈ TO(R), I be a w-homogeneous ideal, G := {g_{1}, …, g_{k}} a w-homogeneous system of generators of I and d ∈ ℕ^{m}. Then G is a d-truncated Gröbner basis of I if {Lt_{τ} (g)s. t.f ∈ F_{≤_{τ} d}} generates Lt_{τ} (I)_{≤_{τ} d}.

Remark 2.17 To compute a Gröbner basis of I truncated to some w degree d, it suffices to introduce a check in the homogeneous Buchberger algorithm that stops the computation after the current pairs reach a degree bigger than d. Moreover, no pairs of w degree bigger than d are created.

2.3 Module Gröbner bases

Module Gröbner bases are defined in exactly the same way as ring Gröbner bases.

Definition 2.18 Let R := k[x_{1}, …, x_{n}] and M ⊂ R^{r} an R module and μ ∈ MTO(M). Then F := {m_{1}, …, m_{k}} is a Gröbner basis for M if Lt_{μ}(M) = {Lt_{μ}(m_{1}), …, Lt_{μ}(m_{k})}

Everything shown in section 2.1 has a module counterpart, with the only difference being that if two module elements have coprime module terms, their SPolynomial not necessarily reduces to 0.

Example 2.19 The vector list ([x_{1}^{2}, 1], [x_{2}, 0]) ⊂ (k[x_{1}, x_{2}])^{2} is not a Gröbner basis of the submodule that it generates with respect to the lex(x_{1} > x_{2})+Pos^{+} module term-ordering. The addition of [x_{2}, 0] is necessary.

It is hence possible to have a module Buchberger algorithm that mimicks exactly the ring Buchberger algorithm. But this leads to the duplication of the implementation.

Another approach is to implement the module Buchberger algorithm only and to consider ideals as special modules, like the macaulay system.

The last approach is to implement the ring Buchberger algorithm only and to consider modules as special ideals. We can use use the embedding introduced in subsection 1.3.1, and work not in M but in ϕ(M) in a suitable overring. We want to show that using this approach, no modification is necessary to the Buchberger algorithm for the computation of the Gröbner basis of a module, if the terms divisibility is interpreted as in definition 1.83, and the coprimality criterion is not used.

Let R := k[x_{1}, …, x_{n}], μ ∈ TO(M) and let M ⊂ R^{r} be a R module generated by {n_{1}, …, n_{p}}. Let E_{1}, …, E_{r} be new variables and t_{1}, …, t_{r} terms of k[x, E] linearly independents over k[x]. Let module morphism

\begin{aligned}ϕ : & R^{r} & ⟶ & k[x, E] \\ & e_{i} & ⇝ & t_{i} \end{aligned}

fulfilling the conditions of theorem 1.88. Then employing the term division definition introduced in 1.83, and considering GCD and lcm in the sense of modules, it follows that :

1) given elements a, b ∈ M, a divides b iff exists c ∈ R, ca = b;

2) a common multiple of a and b may not exist; hence the S-polynomial of two elements of M may not exist, and the corresponding critical pairs can be discarded;

3) the GCD of a and b in M not only may not exist, but it is never 1, the multiplicative identity, that does not exist in M. The corresponding criterion that allows us us to discard pairs in the ring case is never verified in the module case.

Then,

1) a critical pair (a x^{I}E^{J} + ⋯, b x^{H}E^{K} + ⋯) is considered only if J = K.

2) When simplifying a polynomial a x^{I}E^{J} + ⋯, we consider only simplifiers g_{j} such that Lt(g_{j}) = x^{L}E^{J}.

3) discarding useless pairs, we do not discard (g_{i}, g_{j}) if Lt(g_{i}) and Lt(g_{j}) are coprime.

Proposition 2.20 With the notation introduced above, the ring Buchberger algorithm working in k[x, E] computes the Gröbner basis of ϕ(M) as a module with the operations modified as explained in 1-3 above.

Proof. Follows from the discussion above. □

Example 2.21 Let M ⊂ (k[x_{1}, x_{2}])^{2} be a k[x_{1}, x_{2}]-module generated by the elements (< x_{1}^{2}, 1 >, < x_{1}x_{2} + x_{2}^{2}, 0 >, < 0, x_{2} >). The module term-ordering on M is the lex(x_{1} > x_{2}) + P osition module term-ordering, e. g. the module term-ordering μ defined by

x_{1}^{α}x_{2}^{β}e_{i} >_{μ} x_{1}^{α′}x_{2}^{β′}e_{j} ⟺ x_{1}^{α}x_{2}^{β} >_{lex} x_{1}^{α′}x_{2}^{β′} or x_{1}^{α}x_{2}^{β} = x_{1}^{α′}x_{2}^{β′} and i > j′

The embedding is

ϕ : (k[x_{1}, x_{2}])^{2} ⟶ k[x_{1}, x_{2}, E]
e_{1}  ⇝  1
e_{2}  ⇝  E

and on k[x_{1}, x_{2}, E] there is the term-ordering, compatible with ϕ, μ defined by the matrix

[ \begin{matrix}1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{matrix} ]

The image of the generators of M is

ϕ(M) = {f_{1} := x_{1}^{2} + E, f_{2} := x_{1}x_{2} + x_{2}^{2}, f_{3} := x_{2}E}

The pairs (f_{1}, f_{3}) and (f_{2}, f_{3}) are not considered, since the exponent of E in their leading terms is different. The pair (f_{1}, f_{2}) is considered, giving.

SP oly(f_{1}, f_{2}) = −x_{1}x_{2}^{2} + x_{2}E =: g

Note that Lt(f_{2}) | Lt(g), while Lt(f_{3}) = x_{2}E ∤ x_{1}x_{2}^{2} = Lt(g), since the exponent E in their leading terms is different.

g + x_{2}f_{2} = x_{2}^{3} + x_{2}E − f_{3} = x_{2}^{3}

and no further reduction is possible. The polynomial f_{4} := x_{2}^{3} is an element of the Gröbner basis of M. The pair (f_{3}, f_{4}) is not considered, while the pairs (f_{1}, f_{4}) and (f_{1}, f_{4}) are, giving

SP oly(f_{1}, f_{4}) = x_{2}^{3}f_{1} − x_{1}^{2}f_{4} = x_{2}^{3}E@ > f_{3} >> 0;
SP oly(f_{1}, f_{4}) = x_{2}^{2}f_{2} − x_{1}f_{4} = x_{2}^{4}@ > f_{4} >> 0.

Thus the Buchberger algorithm for modules, applied to the generators

{x_{1}^{2} + E, x_{1}x_{2} + x_{2}^{2}, x_{2}E}

gives

L := {x_{1}^{2} + E, x_{1}x_{2} + x_{2}^{2}, x_{2}E, x_{2}^{3}}

hence the list

ϕ^{−1}(L) = {< x_{1}^{2}, 1 >, < x_{1}x_{2} + x_{2}^{2}, 0 >, < 0, x_{2} >, < x_{2}^{3}, 0 >}

is the reduced Gröbner basis of M with respect to μ.

Example 2.22 Let R be k[x, y, z] and μ := degrevlex(x > y > z) ∈ TO(R). Let τ be the module term-ordering on R^{2} defined by

me_{i} >_{μ} m′e_{j} ⟺ m >_{τ} m′ or m = m′ and i > j.

Let the module morphism ϕ be defined by

\begin{matrix}R^{2} & @ > ϕ >> & k[x, E] \\ e_{1} & ⇝ & E \\ e_{2} & ⇝ & E^{2}, \end{matrix}

and the term-ordering μ′ on k[x, E] defined by the matrix

[ \begin{matrix}1 & 1 & 1 & 0 \\ 0 & 0 & −1 & 0 \\ 0 & −1 & 0 & 0 \\ 0 & 0 & 0 & 1 \end{matrix}]

It is immediate to check that ϕ is an injective and ordered embedding of R^{2} in k[x, y, z, E]. Then the generators of the submodule Let M := ([x^{2} −y^{2}, xy−yz], [x^{3} −z^{3}, xy−z^{2}], [0, xy+z]) ⊆ R^{2} be a submodule of R^{2}. Then

ϕ(M) = (x^{2}E + xyE^{2} − y^{2}E − yzE^{2}, x^{3}E − z^{3}E + xyE^{2} − z^{2}E^{2}, xyE^{2} + zE^{2})

The Gröbner basis of ϕ(M) in k[x, y, z, E] with respect to μ′, computed with the Buchberger algorithm modified as above, is

F := { x^{2}E − y^{2}E − yzE^{2} − zE^{2},
xyE^{2} + zE^{2},
xy^{2}E − z^{3}E + xzE^{2} − 2z^{2}E^{2} − zE^{2},
y^{4}E + y^{3}zE^{2} − xz^{3}E + x^{2}zE^{2} + y^{2}zE^{2} − 2xz^{2}E^{2} − xzE^{2},
yz^{4}E^{2} − x^{3}zE^{2} + 2x^{2}z^{2}E^{2} − y^{2}z^{2}E^{2} + z^{4}E^{2} + x^{2}zE^{2} − y^{2}zE^{2},
x^{4}zE^{2} − 2x^{3}z^{2}E^{2} − xz^{4}E^{2} + z^{5}E^{2} − x^{3}zE^{2} − yz^{3}E^{2} − yz^{2}E^{2} },

The counterimage of ϕ(M)

ϕ^{−1}(F) = { [x^{2} − y^{2}, −yz − z],
[0, xy + z],
[xy^{2} − z^{3}, xz − 2z^{2} − z],
[y^{4} − xz^{3}, y^{3}z + x^{2}z + y^{2}z − 2xz^{2} − xz],
[0, yz^{4} − x^{3}z + 2x^{2}z^{2} − y^{2}z^{2} + z^{4} + x^{2}z − y^{2}z],
[0, x^{4}z − 2x^{3}z^{2} − xz^{4} + z^{5} − x^{3}z − yz^{3} − yz^{2}] }

is the Gröbner basis of M with respect to μ.

2.4 Factorizing Gröbner

In several instances, we are not interested in the computation of the Gröbner basis of an ideal I, but in the computation a set of Gröbner bases of ideals such that the union of their associated varieties is the variety of I; or equivalently, of ideals such that their intersection has the same radical as the original basis.

In these cases, if during the computation it happens to recognize that a polynomial g factorize as g_{1} ⋯ g_{k}, it is useful to split the computation in k pieces, using the Factorizing Buchberger Algorithm

The factorizing Buchberger algorithm consists in maintaining a list of ideals, and computing the Gröbner basis of each of them with the pattern: whenever we compute a new polynomial belonging to the ideal and we find that is reducible, consider its distinct factors and split the ideal into as many ideals as there are different factors, adding to each one of them one of the factors. And insert these ideals in the list in place of the original ideal.

There are at least three main possible interpretations of “finding” that a polynomial is reducible:

• actively try to factor any polynomial (maybe only at selected points of the algorithm) with a general-purpose factorizer that can exhibit any existing factorization;

• rely on GCD for discovering factorizations: maintain a list of test polynomials (they may be e.g. the variables, or the list of basis elements, etc.) and try the GCD of them with any new polynomial; if the GCD is non-trivial, try to factor as much as possible the polynomial;

• try a factorization only if you stump into it: whenever something happens that cannot happen if a polynomial is irreducible, or an ideal is prime, (like e.g. having to invert an element that happens to be a zero-divisor) patch the situation with a splitting.

We will usually adopt this latter attitude in the description of our algorithms; however the other approaches are often viable too. The problem is usually that a lot of time is spent in trying to factor irreducible polynomials, but whenever a factorization is found the savings are very large. For this type of factorizations a heuristic irreducibility test is very useful. See [D] for an account.

2.5 Hilbert-Driven Buchberger Algorithm

If we want to compute the Gröbner basis of an homogeneous ideal, and we knew in advance the Hilbert function, then substantial savings are possible exploiting the information that the Hilbert function gives on the structure of the ideal during the execution of Buchberger algorithm.

Proposition 2.23 Let R := k[x_{1}, …, x_{n}], w := (w_{1}, …, w_{m}) be a system of weights, I,J two whomogeneous ideals of R such that J ⊆ I and τ ∈ TO(T^{n}). Let

⟨ I ⟩^{w} = ∑_{u∈ℕ^{m}} a_{u}λ^{u} and ⟨ J ⟩^{w} = ∑_{u∈ℕ^{m}} b_{u}λ^{u}

then for each d ∈ ℕ^{m} the following conditions are equivalent:

i) H_{R/I}^{w}(r) = H_{R/J}^{w}(r) for each r <_{τ} d and H_{R/I}^{w}(d) < H_{R/J}^{w}(d)

ii) a_{r r r} = b_{r r r} for each r <_{τ} d and a_{d d d} < b_{d d d}

Moreover, dim_{k}(I_{d d d}) − dim_{k}(J_{d d d}) = H_{R/J}^{w}(d) − H_{R/I}^{w}(d) = b_{d d d} − a_{d d d}.

Proof. We observe that

∑_{r r r∈ℕ^{m}}(b_{r r r} − a_{r r r})λ^{r r r} = (1 + f(λ)) ∑_{r r r∈ℕ^{m}} (H_{R/J}^{w}(r) − H_{R/I}^{w}(r))λ^{r r r}

where 1 + f(λ) = ∏_{i=1}^{n} (1 − λ^{∂_{w}(x_{i})}) ∈ ℤ[λ] and ∂_{w}(t) > 0 for each t ∈ Supp (F) (see Lemma 1.103). Then the conclusion follows easily □

Definition 2.24 Let R := k[x_{1}, …, x_{n}], w := (w_{1}, …, w_{m}) be a system of weights and σ ∈ TO(ℤ^{m}) Let F be a w-homogeneous system of generators of I and

⟨ I ⟩^{w} = ∑_{u∈ℕ^{m}} a_{u}λ^{u} , ⟨ Lt_{τ} (F) ⟩^{w} = ∑_{u∈ℕ^{m}} b_{u}λ^{u}.

Then Min(F, w) := min_{σ}{d ∈ ℕ^{m}s. t. a_{d} ≠ b_{d}} is the (first) difference of F with respect to (F) and w, and the integer b_{Min(F,w)} − a_{Min(F,w)} is the (first) discrepancy.

Proposition 2.25 Let R := k[x_{1}, …, x_{n}], w be a system of weights of type m, σ ∈ TO(ℤ^{m}), I be a w-homogeneous ideal, F a w-homogeneous system of generators of I and τ a w-compatible term-ordering; then:

i) H_{R/I}^{w}(d) ≤ H_{R/ Lt_{τ} (F)}^{w}(d) for every d ∈ ℕ^{m}

ii) H_{R/I}^{w} = H_{R/ Lt_{τ} (F)}^{w} ⟺ F is a Gröbnerbasis of I

iii) F is an r-truncated Gröbner basis of I for every r <_{σ} Min(F, u)

Exploiting proposition 2.25, if we know the Hilbert function of the ideal of which we want to compute the Gröbner basis, we can use a variant of the homogeneous Buchberger algorithm which uses such Hilbert function to predict the reduction to zero of several pairs.

The Hilbert-Driven Buchberger algorithm

Let R := k[x_{1}, …, x_{n}], w be a system of weights and G := {f_{1}, …, f_{k}} a set of w homogeneous polynomials of R. Then, if we know ⟨(G)⟩^{w}, At start, the first difference of G with respect to (G) and w is computed, let it be d, and its discrepancy be m. Then the pairs of w degree d are processed until m pairs don’t reduce to zero. At this point, all the remaining pairs in w degree d are forced to reduce to zero, and than can be deleted. The next difference and discrepancy are computed, and the algorithm goes on. When the first difference is zero, then G is a Gröbner basis of (G) with respect to τ by the proposition 2.25. All the remaining pairs are deleted, the optional interreduction occurs, and the algorithm stops.

Input G := {g_{1}, …, g_{r}} ⊆ k[x], with g_{i} w homogeneous τ ∈ TO(R) w, system of weights for R

⟨(G)⟩^{w}

Output the reduced Gröbner basis of G with respect to τ.

begin L := generates the initial pairs form G; d := ∂_{w}(in(⟨Lt_{τ} (G)⟩^{w} − ⟨(G)⟩^{w})); Kill the pairs in L whose w degree is lesser than d; while L ≠ ∅ do begin

choose (g_{i}, g_{j}) ∈ L s.t. d = ∂_{w}(SPoly (g_{i}, g_{j})); L:=L − {(g_{i}, g_{j})}; f := NF _{τ} (SPoly (g_{i}, g_{j}), F); if f ≠ 0 then F′:=F′ ∪ {h}; if d ≠ min_{w}{∂_{w}(SPoly (g_{i}, g_{j})) | (g_{i}, g_{j}) ∈ L} then

begin G′:=Interreduce(G′); L,G:=Upgrade^{w,d}(L, G′, G); L′:=∅; d := in(⟨Lt_{τ} (G)⟩^{w} − ⟨(G)⟩^{w});

endif;

Kill the pairs in L whose w degree is w lesser than d; endwhile; return G;

end.

Remark 2.26 The procedure Upgrade^{w,d} does not create pairs whose w degree is lesser than d.

The Hilbert-Driven Buchberger algorithm is useful whenever the Hilbert function of the input ideal is known. This is the case, for example, if the input polynomials are a regular sequence. In several other cases, usually coming from geometric constructions, it is possible to compute the Poincarè series of an ideal without the explicit determination of a system of generators. These results expand significatively the scope of application of Hilbert-Driven techniques. See [BCNR, RV].

Another very useful application of the Hilbert-Driven Buchberger Algorithm is the computation of the Gröbner basis of an ideal with respect to a term-ordering τ when the Gröbner basis of I with respect to a different term-ordering is already known. That change of basis application is quite useful for the radical algorithm discussed in chapter 5. Other methods are the FGLM algorithm for zero-dimensional ideals and the Gröbner walk techniques. The relative efficiency of these methods is still unclear. See [T],

[AGK] and [FGLM].

Some example of the Hilbert-Driven algorithm are shown in subsection 2.6.2, together with Bi-Hilbert-Driven examples.

2.6 Bi-Hilbert-Driven Buchberger Algorithm

In general, using the Hilbert-Driven algorithm, a high type system of weights allows us us to detect more useless pairs that a low type system of weights. But for a high type system of weights the number of Poincaré series computation and the cost of each computation, is quite high.

Example 2.27 Let R := ℤ_{32003}[t, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, u], τ := lex(t > ⋯ > u) and

I := (−tc^{2}e + 2tbcf − taf^{2} − tb^{2}h + taeh + k^{4},
− tcde + tbdf + tbcg − tafg − tb^{2}i + taei + l^{4},
− td^{2}e + 2tbdg − tag^{2} − tb^{2}j + taej + m^{4},
− tcdf + tc^{2}g + tbdh − tagh − tbci + tafi + n^{4},
− td^{2}f + tcdg + tbdi − tagi − tbcj + tafj + o^{4},
− tdf^{2} + tcfg + tdeh − tbgh − tcei + tbfi + p^{4},
− tdfg + tcg^{2} + tdei − tbgi − tcej + tbfj + q^{4},
− td^{2}h + 2tcdi − tai^{2} − tc^{2}j + tahj + r^{4},
− tdgh + tdfi + tcgi − tbi^{2} − tcfj + tbhj + s^{4},
− tg^{2}h + 2tfgi − tei^{2} − tf^{2}j + tehj + u^{4})

The Gröbner basis of I with respect to τ has 421 elements, the set of whose supports has 15686 terms. The computation take 27 s. The computation of the Poincaré series of Lt_{τ} (I)

w.r.t the standard graduation takes 0.31 s, and the univariate polynomial ⟨I⟩, of degree 30, has 31 terms.

w.r.t. w := [ \begin{matrix}1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 \\ 4 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 \end{matrix} ] takes 0.36

s, and the bivariate polynomial ⟨I⟩, of degree 80, has 11 terms.

with respect to w := [1, 2, 1, 3, 1, 4, 1, 5, 1, 6, 1, 7, 1, 8, 1, 9, 1, 10, 1, 11, 1] takes 0.68 s, and the univariate polynomial ⟨I⟩, of degree 300, has 292 terms.

w.r.t. w := [ \begin{matrix}1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 \\ 1 & 2 & 3 & 40 & 5 & 6 & 7 & 8 & 9 & 1 & 2 & 30 & 4 & 5 & 6 & 70 & 8 & 90 & 0 & 0 & 0 \end{matrix} ] takes

15 s, and the bivariate polynomial ⟨I⟩, of degree 1568, has 32456 terms.

w.r.t. w := [ \begin{matrix}1 & 1 & 1 & 3 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 \\ 1 & 2 & 3 & 40 & 5 & 6 & 7 & 8 & 9 & 1 & 2 & 30 & 4 & 5 & 6 & 70 & 8 & 90 & 0 & 0 & 0 \\ 1 & 7 & 3 & 40 & 5 & 4 & 7 & 8 & 0 & 1 & 2 & 30 & 0 & 5 & 6 & 70 & 8 & 90 & 0 & 0 & 0 \\ 1 & 7 & 3 & 40 & 51 & 4 & 7 & 8 & 0 & 11 & 2 & 30 & 0 & 5 & 6 & 70 & 100 & 90 & 0 & 0 & 0 \end{matrix} ]

takes 1266 s, and the pentavariate polynomial ⟨I⟩, of degree 4640, has 646214 terms.

Remark that computation for high type systems of weights may be much more expensive than Gröbner basis computations even if the type doesn’t approach the number of variables.

For more examples, where the systems of weights are more canonical, see subsection 2.6.2.

Remark 2.28 The use of Kronecker’s trick to keep a system of weights of type one doesn’t solve the problem. While it is quite easy to apply Kronecker’s trick, the integers in the system of weights became very large, and the same kind of patologies appears as in the multigraded case.

An idea for avoid in part these problems, while reaping the benefits of high type systems of weights is to use a system of weights of type one, and then refine it to higher type system of weights.

Definition 2.29 Let w = (w_{1}, …, w_{m}) be a system of weights and 1 ≤ k < m. We say that u := (w_{1}, …, w_{k}) is a subsystem of weights of w if it is a system of weights. Under these circumstances we can also say that u := (w_{1}, …, w_{k}) is a system of weights and w = (w_{1}, …, w_{m}) is a refinement of u. An term-ordering μ compatible with u, w, or simply with w (as subsystem of weights of u) is such that there exist τ ∈ TO(ℤ^{k}) and σ ∈ TO(ℤ^{m−k}) s.t. μ = τ × σ.

Lemma 2.30 Let u = (w_{1}, …, w_{k}) be a system of weights, w := (w_{1}, …, w_{m}) be a refinement of u and r ∈ ℕ^{k}. Then

i) T_{r}^{n}, the set of terms of u-degree r, is the disjoint union of the T_{(r,s)}^{n}’s, the set of terms of w-degree (r, s), where s ∈ ℕ^{m−k}

ii) Let I be a w-homogeneous ideal of R. Then (R/I)_{r} = ⨁_{s∈ℕ}(R/I)_{r,s}. Moreover, if H_{R/I}^{u} and H_{R/I}^{w} are the corresponding Hilbert functions, then

H_{R/I}^{u}(r) = ∑_{s∈ℕ^{m−k}} H_{R/I}^{w}(r, s)

Proof. The first part is quite straightforward. As to the second one, we observe that a w-homogeneous ideal of R is also u-homogeneous. But u is a system of weights, hence each T_{r}^{n} is finite; this implies that, for a fixed r ∈ ℕ^{k}, T_{(r,s)}^{n} is empty for almost all s ∈ ℕ^{m−k}. The conclusion follows. □

Lemma 2.31 Let u = (w_{1}, …, w_{k}) be a system of weights, w := (w_{1}, …, w_{m}) be a refinement of u and I a w-homogeneous ideal of R. Let

⟨ I ⟩^{w} = ∑_{u∈ℕ^{m}} a_{u}λ^{u}, ⟨ I ⟩^{u} = ∑_{v∈ℕ^{k}} a′_{v}λ^{v}

be the HP -numerators of I with respect to w and u respectively. Then

i) HP_{R/I}^{u}(λ_{1}, …, λ_{k}) = HP_{R/I}^{w}(λ_{1}, …, λ_{k}, 1, …, 1).

ii) ⟨ I ⟩^{u} (λ_{1}, …, λ_{k}) = ⟨ I ⟩^{w} (λ_{1}, …, λ_{k}, 1, …, 1)

iii) a′_{v} = ∑_{s∈ℕ^{m−k}} a_{(v,s)} for every v ∈ ℕ^{k}.

Proof. It is an easy consequence of the previous Lemma. □

Proposition 2.32 Let u = (w_{1}, …, w_{k}) be a system of weights, w := (w_{1}, …, w_{m}) be a refinement of u and μ ∈ TO(ℤ^{m}) compatible with u, w. Let J ⊂ I be two w-homogeneous ideals of R such that

⟨ I ⟩^{w} = ∑_{u u u∈ℕ^{m}} a_{u u u}λ^{u u u} , ⟨ J ⟩^{w} = ∑_{u u u∈ℕ^{m}} b_{u u u}λ^{u u u}

and

⟨ I ⟩^{u} = ∑_{v v v∈ℕ^{k}} a′_{v v v}λ^{v v v} , ⟨ J ⟩^{u} = ∑_{v v v∈ℕ^{k}} b′_{v v v}λ^{v v v}.

If rrr ∈ ℕ^{k} is s.t. a′_{v v v} = b′_{v v v} for v <_{μ} r and a′_{r r r} < b′_{r r r} then

i) a_{(v v v,s s s)} = b_{(v v v,s s s)} for each s ∈ ℕ^{m−k} and v <_{μ} r ii) b_{(r r r,s s s)} − a_{(r r r,s s s)} = H_{R/J}^{w}(r, s) − H_{R/I}^{w}(r, s) for each s ∈ ℕ^{m−k}

iii) there exist a finite not empty subset S of ℕ^{m−k} such that, for each s ∈ S, H_{R/I}^{w}(r, s) < H_{R/J}^{w}(r, s), hence a_{(r r r,s s s)} < b_{(r r r,s s s)}.

Proof. From lemma 2.30 we have H_{R/I}^{w}(v, s) = H_{R/J}^{w}(v, s) ∀ v <_{μ} r. Following proposition 2.23 we get a_{(v v v,s s s)} = b_{(v v v,s s s)} ∀ v <_{μ} r. From a′_{r r r} < b′_{r r r} we get H_{R/I}^{u}(r) < H_{R/J}^{u}(r), hence

∑_{s s s∈ℕ^{m−k}} H_{R/I}^{w}(r, s) < ∑_{s s s∈ℕ^{m−k}} H_{R/J}^{w}(r, s).  (2.1)

Now H_{R/I}^{w}(r, s) and H_{R/J}^{w}(r, s) are zero for almost all s ∈ ℕ^{m−k} and inequality (2.1) implies that there exists at least one ν such that H_{R/I}^{w}(r, ν) < H_{R/J}^{w}(r, ν). We define S := {s ∈ ℕ^{m−k}s. t.H_{R/I}^{w}(r, s) ≠ H_{R/J}^{w}(r, s)} and we have H_{R/I}^{w}(r, s) < H_{R/J}^{w}(r, s) for every s ∈ S. Therefore we have shown that i) and ii) imply iii). Let s ∈ S. As in the proof of proposition 2.23 we can write:

∑_{(r r r,s s s)∈ℕ^{m}} (b_{(r r r,s s s)} − a_{(r r r,s s s)})λ^{(r r r,s s s)} = (1 + f(λ)) ∑_{(r r r,s s s)∈ℕ^{m}} (H_{R/J}^{w}(r, s) − H_{R/I}^{w}(r, s))λ^{(r,s)}

where f ∈ ℤ[λ] and ∂_{w}(t) ≠ 0 for each t ∈ Supp (f), due to the fact that u is a system of weights. Then, from the above equality it follows

b_{(r r r,s s s)} − a_{(r r r,s s s)} = H_{R/J}^{w}(r,sss) − H_{R/I}^{w}(r, s) + f(λ) ∑_{(v,t)∈ℕ^{m}} (H_{R/J}^{w}(v, t) − H_{R/I}^{w}(v, t))

with v <_{μ} r. By assumption,

H_{R/J}^{w}(v, t) − H_{R/I}^{w}(v, t) = 0 if v <_{μ} r.

Therefore, for each s ∈ ℕ^{m−k} we have:

• b_{(u u u,s s s)} = a_{(u u u,s s s)} if u <_{μ} r

• b_{(r r r,s s s)} − a_{(r r r,s s s)} = H_{R/J}^{w}(r, s) − H_{R/I}^{w}(r, s)

Hence i) and ii) are proved. □

Example 2.33 Let R := k[x, y, z, t], w := [ \begin{matrix}1 & 1 & 2 & 1 \\ 3 & 1 & 1 & 1 \end{matrix} ] be a system of weights and u :=

[ 1 1 2 1 ] a subsystem of weights of w. The ideals I := (yt − t^{2}, xy − xt) and J := (0) ⊂ I are w-homogeneous ideals of R. The Poincaré seriesof I and J with respect to w and u are

HP_{R/I}^{w}(λ_{1}, λ_{2}) = \frac{1 − λ_{1}^{2}λ_{2}^{2} − λ_{1}^{2}λ_{2}^{4} + λ_{1}^{3}λ_{2}^{5}}{(1 − λ_{1}λ_{2}^{3})(1 − λ_{1}λ_{2})^{2}(1 − λ_{1}^{2}λ_{2})}

HP_{R/J}^{w}(λ_{1}, λ_{2}) = \frac{1}{(1 − λ_{1}λ_{2}^{3})(1 − λ_{1}λ_{2})^{2}(1 − λ_{1}^{2}λ_{2})}

HP_{R/I}^{u}(λ) = \frac{1 − 2λ^{2} + λ^{3}}{(1 − λ)^{3}(1 − λ^{2}))}

HP_{R/J}^{u}(λ) = \frac{1}{(1 − λ)^{3}(1 − λ^{2}))}

The first differences between I and J are generated by the terms yt and xy, of w-degree (2, 2) and (2, 4) respectively, so we expect difference 2 in u-degree 2 and differences 1 in w-degrees (2, 2) and (2, 4). By subtracting the numerators we compute the first differences and verify that this example fits with 2.23.

⟨ J ⟩^{u} − ⟨ I ⟩^{u} = 2λ^{2} + 7λ^{3} + 17λ^{4} + ⋯

⟨ J ⟩^{w} − ⟨ I ⟩^{w} = \underbrace{λ_{1}^{2}λ_{2}^{2} + λ_{1}^{2}λ_{2}^{4}}_{u−degree=2} +λ_{1}^{3}λ_{2}^{3} + λ_{1}^{3}λ_{2}^{5} + λ_{1}^{3}λ_{2}^{7} + λ_{1}^{4}λ_{2}^{3} + ⋯

Moreover, the reader can easily check how this example fits with lemma 2.31, and proposition 2.32.

Definition 2.34 Let u = (w_{1}, …, w_{k}) be a system of weights and w := (w_{1}, …, w_{m}) be a refinement of u. Let F be a w-homogeneous system of generators of I and

⟨ I ⟩^{w} = ∑_{d d d∈ℕ^{m}} a_{u u u}λ^{u u u} , ⟨ Lt_{σ}(F) ⟩^{w} = ∑_{u u u∈ℕ^{m}} b_{u u u}λ^{u u u}.

If r := Min(F, u), we denote D(F, w, u) := {(r, s)s. t.s ∈ ℕ^{m−k} and a_{(r r r,s s s)} ≠ b_{(r r r,s s s)}} and we call it the first difference set of F with respect to (w, u).

Theorem 2.35 Let w = (w_{1}, …, w_{m}) be a system of weights, I be a w-homogeneous ideal, σ be a w-compatible term-ordering and let G be the reduced Gröbner basis of I with respect to σ and F an interreduced w-homogeneous system of generators of I. We assume

⟨ I ⟩^{w} = ∑_{d d d∈ℕ^{m}} a_{d d d}λ^{d d d} , ⟨ Lt_{σ}(F) ⟩^{w} = ∑_{d d d∈ℕ^{m}} b_{d d d}λ^{d d d}

Finally we let u be a subsystem of weights of w, r := Min_{w}(F, u) and D(F, w, u)) = {(r, u_{1}), …, (r, u_{s})}; then

i) #G_{(r r r,u_{i})} = #F_{(r r r,u_{i})} + b_{(r r r,u_{i})} − a_{(r r r,u_{i})} for i = 1, …, s.

ii) For each h ∈ R_{(r r r,u_{j})} and i ≠ j it holds H_{R/ Lt_{σ}(F,h)}(rrr, u_{i}) = H_{R/ Lt_{σ}(F)}(rrr, u_{i}).

Proof. Let μ be the w degree ordering. We know that r is the first difference of F with respect to u. Moreover F is assumed to be interreduced. This implies that F is an r′-truncated reduced Gröbner basis of I for every r′ <_{μ} r. Therefore F_{<_{μ}r} = G_{<_{μ}r}. By Proposition 2.32

dim _{k}(Lt_{σ}(I)_{(r r r,u_{i})}) − dim _{k}(Lt_{σ}(F)_{(r r r,u_{i})}) = b_{(r r r,u_{i})} − a_{(r r r,u_{i})}

for each 1 ≤ i ≤ s. From F_{<_{μ}r r r} = G_{<_{μ}r r r} it follows that

#G_{(r r r,u_{i})} − #F_{(r r r,u_{i})} = dim _{k}(Lt_{σ}(I)_{(r r r,u_{i})}) − dim_{k}(Lt_{σ}(F)_{(r r r,u_{i})})

for each 1 ≤ i ≤ s, and so i) is proved. To prove ii) we observe that if p,q are power products and p ∈ R_{(r r r,u_{i})}, q ∈ R_{(r r r,u_{j})} then no divisibility relation can occur between them. □

2.6.1 The Bi-Hilbert-Driven algorithm

Let u = (w_{1}, …, w_{k}) be a system of weights, w := (w_{1}, …, w_{m}) a refinement of u and μ ∈ TO(ℤ^{m}) compatible with u, w. Let I be a w-homogeneous ideal of R := k[x_{1}, …, x_{n}], G := {g_{1}, …, g_{r}} a set of w-homogeneous generators of I, w-Poincaré seriesof R/I and σ a w-compatible term-ordering. We want to compute the Gröbner basis of I with respect to σ, using the Poincaré series.

Remark 2.36 Since the bigger the u homogeneous components the better the splitting, it is useful to take u of type one. If this is not the case, en lieu of u, w we can use u′, w′, where

1. u′ := (w′_{1}), where u_{1} := ∑_{i=1}^{k} w_{i} and

2. w′ := (w_{2}, …, w_{m}).

The equivalence of u, u′ and w, w′ is straightforward.

Example 2.37 Let us consider the system of weights w := [ \begin{matrix}1 & 0 & 2 & 1 \\ 0 & 1 & 1 & 1 \end{matrix} ]

Of course no subset is a subsystem of weights, but if an ideal is w-homogeneous, it is also homogeneous

with respect to w′ := [ \begin{matrix}1 & 1 & 3 & 2 \\ 1 & 0 & 2 & 1 \end{matrix} ]

So it is possible to consider the subsystem of weights given by u := [ 1 1 3 2 ].

Input G := {g_{1}, …, g_{r}} ⊆ k[x], with g_{i} homogeneous; τ ∈ TO(R); u system of weights and w, refinement of u; ⟨(G)⟩^{w}; ⟨(G)⟩^{u};

Output the reduced Gröbner basis of G with respect to τ.

begin L := generates the initial pairs from G; d′ := in(⟨Lt_{τ} (G)⟩^{u}) − ⟨(G)⟩^{u}; d := in(⟨Lt_{τ} (G)⟩^{w,d′} − ⟨(G)⟩^{w}); D :=list of the w degrees of the terms in d; d_{h} := Head(D); D := T ail(D) Delete the pairs in L whose u degree is less than d′; Delete the pairs in L whose u degree is equal to d′ and whose w degrees are not in d. while L ≠ ∅ do begin

choose (g_{i}, g_{j}) ∈ L s.t. d_{h} = ∂_{w}(SPoly (g_{i}, g_{j})); L:=L − {(g_{i}, g_{j})}; g := NF _{τ}^{w}(SPoly (g_{i}, g_{j}), G); if f ≠ 0 then G′:=G′ ∪ {g}; if d_{h} ≠ min_{w}{∂_{w}(SPoly (g_{i}, g_{j})) | (g_{i}, g_{j}) ∈ L} then

begin

if d′ = min_{u}{∂_{u}(SPoly (g_{i}, g_{j})) | (g_{i}, g_{j}) ∈ L} then

begin d_{h} := Head(D); D := T ail(D) G′:=Interreduce(G′); L,G:=Upgrade^{w,d}(L, G′, G); L′ := ∅; G′ := ∅;

end else

begin d′ := in(⟨Lt_{τ} (G)⟩^{w}) − ⟨(G)⟩^{u} d := in(⟨Lt_{τ} (G)⟩^{w,d′} − ⟨(G)⟩^{w}) D :=list of the w degrees of the terms in d; Delete the pairs in L whose u degree is less than d′; Delete the pairs in L whose u degree is equal to d′ and whose w degrees are not in d. d_{h} := Head(D); D := T ail(D)

end endif;

endwhile; return G;

end.

Remark 2.38

• Following the previous remark, Bi-Hilbert-Driven requires the computation of some univariate Hilbert-Poincaré series in order to spot the first difference, say in u-degree r. Once such a difference is found, Bi-Hilbert-Driven requires to compute a multigraded Hilbert-Poincaré series in order to detect the differences, say ((r, u_{1}), …, (r, u_{s})), in the more refined graduation.

• Once a first difference is found, say in u-degree r, we do not need to compute the full multigraded Hilbert-Poincaré series, but it is sufficient to truncate it to the u-degree r. This is a substantial optimization of the Bi-Hilbert-Driven algorithm.

• The computation of the SP-polynomials in the degrees ((r, u_{1}), …, (r, u_{s})) is intrinsically parallelizable. Namely, R_{(r,u_{1})} + ⋯ + R_{(r,u_{s})} is a direct sum, hence no interaction occurs among the elements of different subdegrees. This allows us to conclude that the computations in the degrees (r, u_{1}), …, (r, u_{s}) are independent each other.

2.6.2 Some statistics for the Hilbert-Driven and Bi-Hilbert-Driven algorithms

We examine here four examples for the Hilbert-Driven and Bi-Hilbert-Driven Algorithms. For more examples, see [T, CDR]. In every case, the Poincaré series is known because the ideals are complete intersections.

Example 2.39 Let R := ℤ_{32003}[x_{1}, …, x_{3}, y_{1}, …, y_{3}],

I := (x_{1}y_{1}^{2} − x_{2}y_{2}^{2} + x_{3}y_{3}^{2}, x_{1}y_{2}^{3} − x_{2}y_{3}^{3} + x_{3}y_{1}^{3}, x_{1}y_{3}^{4} − x_{2}y_{1}^{4} + x_{3}y_{2}^{4})

w := [ \begin{matrix}1 & 1 & 1 & 1 & 1 & 1 \\ 0 & 0 & 0 & 1 & 1 & 1 \end{matrix} ]

and τ be the term-ordering given by competing the matrix w with degrevlex. We remark that I is homogeneous with respect to the standard graduation and w. We want to compute the Gröbner basis of I with respect to τ.

Example 2.40 Let R := ℤ_{32003}[y_{1}, …, y_{36}, x_{0}, …, x_{9}],

I := (x_{1}^{2} − x_{0}x_{2} + y_{1}, x_{1}x_{2} − x_{0}x_{3} + y_{2}, x_{1}x_{3} − x_{0}x_{4} + y_{3}, x_{1}x_{4} − x_{0}x_{5} + y_{4}
x_{1}x_{5} − x_{0}x_{6} + y_{5}, x_{1}x_{6} − x_{0}x_{7} + y_{6}, x_{1}x_{7} − x_{0}x_{8} + y_{7}, x_{1}x_{8} − x_{0}x_{9} + y_{8}
x_{2}^{2} − x_{1}x_{3} + y_{9}, x_{2}x_{3} − x_{1}x_{4} + y_{1−}, x_{2}x_{4} − x_{1}x_{5} + y_{11}, x_{2}x_{5} − x_{1}x_{6} + y_{12}
x_{2}x_{6} − x_{1}x_{7} + y_{13}, x_{2}x_{7} − x_{1}x_{8} + y_{14}, x_{2}x_{8} − x_{1}x_{9} + y_{15}, x_{3}^{2} − x_{2}x_{4} + y_{16}
x_{3}x_{4} − x_{2}x_{5} + y_{17}, x_{3}x_{5} − x_{2}x_{6} + y_{18}, x_{3}x_{6} − x_{2}x_{7} + y_{19}, x_{3}x_{7} − x_{2}x_{8} + y_{20}
x_{3}x_{8} − x_{2}x_{9} + y_{21}, x_{4}^{2} − x_{3}x_{5} + y_{22}, x_{4}x_{5} − x_{3}x_{6} + y_{23}, x_{4}x_{6} − x_{3}x_{7} + y_{24}
x_{4}x_{7} − x_{3}x_{8} + y_{25}, x_{4}x_{8} − x_{3}x_{9} + y_{26}, x_{5}^{2} − x_{4}x_{6} + y_{27}, x_{5}x_{6} − x_{4}x_{7} + y_{28}
x_{5}x_{7} − x_{4}x_{8} + y_{29}, x_{5}x_{8} − x_{4}x_{9} + y_{30}, x_{6}^{2} − x_{5}x_{7} + y_{31}, x_{6}x_{7} − x_{5}x_{8} + y_{32}
x_{6}x_{8} − x_{5}x_{9} + y_{33}, x_{7}^{2} − x_{6}x_{8} + y_{34}, x_{7}x_{8} − x_{6}x_{9} + y_{35}, x_{8}^{2} − x_{7}x_{9} + y_{36})

w := [\begin{matrix}2 & 2 & 2 & 2 & 2 & 2 & 2 & 2 & 2 & 2 & 2 & 2 & 2 & 2 & 2 & 2 & 2 & 2 & 2 & 2 & 2 & 2 & 2 & 2 & 2 & 2 & 2 & 2 & 2 & 2 & 2 & 2 & 2 & 2 & 2 & 2 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 \\ 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 4 & 5 & 6 & 7 & 8 & 9 & 10 & 6 & 7 & 8 & 9 & 10 & 11 & 8 & 9 & 10 & 11 & 12 & 10 & 11 & 12 & 13 & 12 & 13 & 14 & 14 & 15 & 16 & 0 & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 \end{matrix}]

and let τ be the term-ordering given by completing the matrix w with the elimination term-ordering for the variables x. We remark that I is homogeneous with respect to the graduations given by w_{1} and w. We want to compute GB(I, τ).

Example 2.41 Let R := ℤ_{32003}[y_{1}, …, y_{16}, x_{1,1}, …, x_{4,4}, t] and

M := [ \begin{matrix}x_{1,1} + x_{1,2} + x_{2,1} & x_{1,2} & x_{1,3} & x_{1,4} \\ x_{2,1} & x_{2,2} + x_{2,4} + x_{1,3} & x_{2,3} & x_{2,4} \\ x_{3,1} & x_{3,2} & x_{3,3} & x_{3,4} \\ x_{4,1} & x_{4,2} & x_{4,3} & x_{4,4} \end{matrix} ]

Then let I be the ideal generated by the polynomials {tf_{j} − y_{j}|f_{j} ∈ Min_{3}(M) and j : 1 … 16} and w the system of weights

[ \begin{matrix}4 & 4 & 4 & 4 & 4 & 4 & 4 & 4 & 4 & 4 & 4 & 4 & 4 & 4 & 4 & 4 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 \\ 9 & 9 & 9 & 9 & 10 & 10 & 10 & 10 & 12 & 12 & 12 & 12 & 12 & 12 & 12 & 12 & 2 & 2 & 2 & 2 & 2 & 2 & 2 & 2 & 4 & 4 & 4 & 4 & 5 & 5 & 5 & 5 & 1 \end{matrix} ]

Let τ the elimination term-ordering for the t variable. Remark that I is homogeneous with respect to the system of weights given by w_{1} and w. We want to compute GB(I, τ).

Example 2.42 Let R := ℤ_{32003}[t, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, u], τ := lex(t > ⋯ > u),

I := (−tc^{2}e + 2tbcf − taf^{2} − tb^{2}h + taeh + k^{4},
− tcde + tbdf + tbcg − tafg − tb^{2}i + taei + l^{4},
− td^{2}e + 2tbdg − tag^{2} − tb^{2}j + taej + m^{4},
− tcdf + tc^{2}g + tbdh − tagh − tbci + tafi + n^{4},
− td^{2}f + tcdg + tbdi − tagi − tbcj + tafj + o^{4},
− tdf^{2} + tcfg + tdeh − tbgh − tcei + tbfi + p^{4},
− tdfg + tcg^{2} + tdei − tbgi − tcej + tbfj + q^{4},
− td^{2}h + 2tcdi − tai^{2} − tc^{2}j + tahj + r^{4},
− tdgh + tdfi + tcgi − tbi^{2} − tcfj + tbhj + s^{4},
− tg^{2}h + 2tfgi − tei^{2} − tf^{2}j + tehj + u^{4})

and

w := [ \begin{matrix}1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 \\ 4 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 \end{matrix} ]

Remark that I is homogeneous with respect to the systems of weights given by w_{1} and w. We want to to compute GB(I, τ).

We show two tables. In the first one we report the timing in seconds obtained with the above described examples. In the second table we show some statistics related to the performance of our algorithm. We remark that in all the examples the coefficient filed is ℤ_{32003}. In ℚ the performance of the algorithm improves, since the computational cost of every reduction increases.

And now let us give some explanation of the headings:

Usual The usual Buchberger algorithm. HD The univariate Hilbert-Driven Algorithm. Ov_{HD} The overhead of the computation of the univariate Poincarè series. BHD The Bi-Hilbert-Driven algorithm. Ov_{BHD} The overhead of the computation of the univariate and the multigraded Poincarè series. Useful The number of the computed useful pairs after the application of the Gebauer-Möller criteria. Total The total number of the computed critical pairs. HD-K The number of pairs recognized as useless (hence killed) by the Hilbert-Driven algorithm. BHD-K The number of pairs recognized as useless (hence killed) by the Bi-Hilbert-Driven algorithm. # PS The number of univariate and multigraded Poincarè series computed.

Name  Usual HD Ov_{HD} BHD Ov_{BHD}
Ex 2.39 106 s 94 s 0.16 s 10 s 2.5 s
Ex 2.40 13611 s 772 s 0.38 s 556 s  8.08 s
Ex 2.41 9895 s 563 s 3.84 s 333 s  79.55s
Ex 2.42 26 s 16 s 0.76 s 15 s 4.21 s
Name Useful Total HD-K BHD-K # PS
Ex 2.39  272 1073  89  711 28+28
Ex 2.40  1659 53697 35728  46700  8+8
Ex 2.41  820 12097  2587  7398 24+24
Ex 2.42  411 4123  1524  1708 25+25

Remark 2.43 The BHD algorithm kills more pairs than the HD algorithm. The computation of Poincaré series for system of weights of type > 1 is quite high with respect to the cost of the computation of Poincaré series for type one system of weights, that is negligible. The BHD algorithm has better timings notwithstanding the cost of high type Poincaré series computations.

Remark 2.44 If the memory available is not sufficient to avoid swapping, the BHD Algorithm is even more interesting, since the cost of each reduction is bigger. We see the timings for a Pentium 90 with 32MB RAM.

Name  Usual  HD BHD
Ex 2.39  359 s  289 s  34 s
Ex 2.40  > 24h 16908 s 4202 s
Ex 2.41 >16000 s 2510 s 1465 s
Ex 2.42  96 s  52 s  48 s

2.7 Dynamic Buchberger algorithm

The computation of a Gröbner basis may have very different costs depending on the term-ordering chosen. If there are no restrictions on the choice of term-ordering, a good heuristic strategy is to examine the input and search by hand a suitable term-ordering for the computation.

Example 2.45 Let R := ℚ[a, b, c, d, e, f, g, h] and

C_{7} := Ideal( a + b + c + d + e + f + g,
ab + bc + cd + de + ef + fg + ga,
abc + bcd + cde + def + efg + fga + gab,
abcd + bcde + cdef + defg + efga + fgab + gabc,
abcde + bcdef + cdefg + defga + efgab + fgabc + gabcd,
abcdef + bcdefg + cdefga + defgab + efgabc + fgabcd + gabcde,
h^{7} − abcdefg )

Then the time for the computation of the reduced Gröbner basis with respect to the degrevlex(a > ⋯ > h) is 306”, there are 443 polynomials in the basis and 79897 terms in the supports of the basis polynomials. If the variable h is bigger than the others, the last equation is neutralized, hence a good choice seems to be to use degrevlex(h > a > ⋯ > g). Indeed, the computation time for the this ordering is 62′′, there are 121 polynomials in the basis and 28595 terms in the supports of the basis polynomials.

Such a priori choice is, apart from some cases, usually quite difficult. Two well known useful heuristic criteria are :

• lexicographically term-orderings are usually bad, and the degrevlex term-orderings are usually good;

• it is generally a good idea to use a system of weights on the ring that makes the ideal of which we want to compute the Gröbner basis homogeneous, or as homogeneous as possible.

The following theorem, due to Mora and Robbiano, [MR], suggests that an “optimal” term-ordering exists.

Theorem 2.46 Let R := k[x_{1}, …, x_{n}] and I an ideal of R. Then TO(R) is partitioned in a finite number of subsets such that the term-orderings in the same subset give the same reduce Gröbner basis.

Proof. See [MR]. □

Theorem 2.46 suggests to find constructively the “cheapest” reduced Gröbner basis for a given ideal by the choice of a suitable term-ordering. It is in general impossible to choose this term-ordering a priori, since the Buchberger algorithm is quite impredictable; the ordering can, however, be adapted dynamically during the execution of the Buchberger algorithm, exploiting the data made available during the computation.

It is thus of interest to develop a version of the Buchberger algorithm that choose, during the computation, the best possible term-ordering, according to some heuristics. See [Ca]

2.7.1 Gröbner Fan

We use the notation of section 1.2.3.

Definition 2.47 Let R := k[x_{1}, …, x_{n}] and F := {f_{1}, …, f_{k}} ⊂ R. For each f_{i} let us chose m_{i} ∈ Supp (f_{i}). Let PL (F) be the list of such terms. The elements of PL (F) are potential leading terms of F if there exists σ ∈ TO(R) such that Lt_{σ}(f_{i}) = m_{i} ∀ i : 1 … k. The list PL (F) is a list of potential leading terms of F and σ is compatible with F, PL (F). Let f ∈ R and m ∈ Supp (f). Then m is a potential leading term of f with respect to F, PL (F) if PL (F) ∪ {m} is a list of possible leading terms of F ∪ {f}.

Remark 2.48 Let R := k[x_{1}, …, x_{n}], τ, σ ∈ TO(R) and F := {f_{1}, …, f_{k}} ⊂ R.

1. If PL (F) is a list of potential leading terms of F, then there exists at least one potential leading term of f with respect to F, PL (F), e. g. Lt_{σ}(f), where σ is a term-ordering compatible with F, PL (F).

2. Then if τ is compatible with F, Lt_{σ}(F), then τ is equivalent to σ with respect to F, e. g. τ and σ gives to F the same leading terms.

Theorem 2.49 Let R := k[x_{1}, …, x_{n}] and F := {f_{1}, …, f_{k}} ⊂ R. Let PL (F) be a list of potential leading terms of F and f ∈ R. Then the relation ∼_{F ∪{f}} induces a partition of the set of term-orderings compatible with F, PL (F) in equivalence classes such that

1. every class is composed of the term-orderings equivalent with respect to F ∪ {f};

2. the cones associated to the classes are polyhedral cones, centered on the origin, pairwise disjoint in (ℝ^{n})^{+} and with topological interior non void

Proof. Follows immediately from proposition 1.74 and corollary 1.76. □

Corollary 2.50 Every equivalence class has a representative whose first vector is in (ℕ^{n})^{+}

Corollary 2.51 There is a one-to-one correspondence between potential leading terms of f and equivalence classes (and their associated cones). The number of classes is then finite, and ≤ # Supp (f). Thereafter such correspondence will be implicit.

Definition 2.52 Under the hypothesis of the theorem 2.49, to every potential leading term t of f with respect to F, PL (F) is associated a class, \underline{σ : t}. If t belongs to Supp (f) but it is not a potential leading term, then \underline{σ : t} is the empty class.

Definition 2.53 Let R := k[x_{1}, …, x_{n}], F := {f_{1}, …, f_{k}} ⊂ R and f ∈ R. Let PL (F) be a list of potential leading terms for F. Then the set of cones associated to the equivalence classes with respect to PL (F), f is the Gröbner fan of F with respect to PL (F), f.

2.7.2 The Dynamic Buchberger algorithm

Proposition 2.54 Let R := k[x_{1}, …, x_{n}], F := {f_{1}, …, f_{k}} ⊂ R and τ, σ ∈ TO(R) such that τ ∼_{F} σ. Then NF _{F,τ} (f) = NF _{F,σ}(f) for every f ∈ R.

Proof. Follows immediately from the definitions of NF and ∼_{F}. □

Remark 2.55 From proposition 2.54 it follows that to exploit the reduction already performed, it is sufficient for the new term-ordering to be equivalent to the old one with respect to the already computed polynomials.

We give a quick review of the Dynamic Buchberger Algorithm : Initially, we select a suitable term-ordering through considerations on the input polynomials. Then, we execute the Buchberger algorithm but, after every S-Polynomial reduction which doesn’t give zero, we choose a leading term among the potential leading terms of the reduced polynomial with respect to the current term-ordering and the already computed polynomials. To this term is associated a term-ordering, equivalent to the current term-ordering with respect to the already computed polynomials. This is the new term-ordering used thereafter by the algorithm. The choice is directed by heuristics based on the Hilbert function (see subsection 2.7.3).

Dynamic Buchberger algorithm

Input G := {g_{1}, …, g_{r}} ⊆ k[x] homogeneous, w system of weights for R. Output the reduced Gröbner basis of G with respect to τ;.

begin L:= generates the initial pairs;

   τ := ComputeInitialOrder(G);

d:=min_{w}{∂_{w}(SPoly (g_{i}, g_{j})) | (g_{i}, g_{j}) ∈ L}; while L ≠ ∅ do begin

choose (g_{i}, g_{j}) ∈ L s.t. d = ∂_{w}(SPoly (g_{i}, g_{j})); L := L − {(g_{i}, g_{j})}; g := NF _{σ}(SPoly (g_{i}, g_{j}), G); if g ≠ 0 then G′:=G′ ∪ {g}; if d ≠ min_{w}{∂_{w}(SPoly (g_{i}, g_{j})) | (g_{i}, g_{j}) ∈ L} then

begin

         τ := RefineCurrentOrder(G, g, τ);

G′:=Interreduce(G′); L,G:=Upgrade(L, G′, G); L′:=∅; d:=min_{w}{∂_{w}(SPoly (g_{i}, g_{j})) | (g_{i}, g_{j}) ∈ L};

endif; endwhile; return G;

end.

The only differences of the Dynamic Buchberger Algorithm with respect to the usual Buchberger algorithm is the repeated change of term-ordering during the execution, controlled by the procedures

ComputeInitialOrder and RefineCurrentOrder.

2.7.3 Order refining

Procedure RefineCurrentOrder

InputF := {f_{1}, …, f_{k}} ⊆ R, f ∈ R, σ ∈ TO(R); Output τ ∈ TO(R), compatible with σ, F;

begin Step a Determine all potential leading terms of f with respect to F, Lt_{σ}(F); Step b Choose a term t among the terms produced by step a; return τ, a term-ordering belonging to the class associated to t with respect to F, Lt_{σ}(F);

end.

Step a

To determine all the potential leading terms of f with respect to F, Lt_{σ}(F) we have to find integral solutions for the associated systems of linear inequalities (test systems) as discussed in subsection 1.2.3. One of the methods for solving a system of rational inequalities if the simplex algorithm. Let S_{t} be such a system.

Remark 2.56 If a test system S_{t} has been solved by the simplex algorithm, a system obtained adjoining some condition to S_{t} is usually easily solvable by the simplex algorithm starting from the solution of system S_{t}. Exploiting this fact, an incremental version of the simplex algorithm has been developed, thus cutting the overhead significantly.

Some easy optimizations greatly reduce the number of test systems that have to be considered.

Remark 2.57 If a term divides another term, then it is not a potential leading term.

Proposition 2.58 Let R := k[x_{1}, …, x_{n}], F := {f_{1}, …, f_{k}} ⊂ R and (t_{1}, …, t_{k}) be potential leading terms of f_{1}, …, f_{k}. Then the system

{ t_{i} > m m ∈ Supp (f_{i}), i : 1 … k  (2.2)

is equivalent to the system

{ t_{i} > m m potential leading term of f_{i} with respect to {f_{1}, …, f_{i−1}}, {t_{1}, …, t_{i−1}}, i : 1 … k(2.3)

Proof. Let F′ := {f_{1}, …, f_{i−1}} and Lt(F′) := {t_{1}, …, t_{i−1}}. To prove the thesis it is sufficient to show that every condition t_{i} > m in 2.2 such that m is not a potential leading term of f_{i} is useless. It is hence sufficient to show that for every term-ordering σ ∈ TO(R) compatible with F′, Lt(F′) there exists t_{σ} potential leading term of f_{i} with respect to F′, Lt(F′) such that t_{σ} > m. From that it follows that t_{i} > t_{σ} ⟹ t_{i} > m and then, since the first condition is in system 2.2, the second is useless. But then as t_{σ} it suffices to choose Lt_{σ}(f_{i}). □

Remark 2.59 Remark 2.57 allows us to skip some candidates to potential leading terms position. The use of proposition 2.58 is a bit more delicate. We have to keep trace of the potential leading terms of every computed polynomial, and only these terms are used to generate the test systems. As the number of reduction performed increases, the polyhedral cones associated to the test systems narrows, and so the number of potential leading terms for every polynomial usually decreases substantially after the first reductions.

Remark 2.60 A further optimization in the description of the cones associate to the test systems may be done using convex geometry techniques en lieu of the simplex, see [Sw], obtaining a minimal description of the cones. Such techniques are, however, more expensive in time and space than the simplex algorithm, at least for examples of the size examined in this thesis.

Step b

We have the set S of potential leading terms of the poly f with respect to F, Lt_{σ}(F). We want to choose a leading term in S. The heuristics we use is based on Hilbert function considerations, and we consider only homogeneous ideals.

Definition 2.61 Let f and g be two functions from ℕ^{n} to ℕ and τ ∈ O(ℕ^{n}). Then f is lexicographically greater than g with respect to τ (f ≥_{lex,τ} g) if the first (with respect to τ) d ∈ ℕ^{n} for which f(d) ≠ g(d) is such that f(d) > g(d).

Proposition 2.62 Let R := k[x_{1}, …, x_{n}], w be a system of weights for R of type r, τ ∈ TO(ℕ^{r}), F := {f_{1}, …, f_{k}} be homogeneous polynomial in R and I := (F). Then

a) H_{R/ Lt_{σ}(F)}^{w} ≥_{lex,τ} H_{R/I}^{w} for every σ ∈ TO(R).

b) Equality holds if and only if F is a Gröbner basis of I with respect to σ.

Proof.

a) From the definition of Hilbert function follows that H_{R/ Lt_{σ}(F)}^{w}(d) ≥ H_{R/I}^{w}(d) ∀ d ∈ ℕ^{r}. b) If F is a Gröbner basis of I, then Lt_{σ}(I) = Lt_{σ}(F), hence H_{R/ Lt_{σ}(F)}^{w} = H_{R/I}^{w}.

If H_{R/ Lt_{σ}(F)}^{w} = H_{R/I}^{w}, assume that F is not a Gröbner basis. Then there exists a term t ∈ Lt_{σ}(I) − Lt_{σ}(F). Since Lt_{σ}(I) ⊃ Lt_{σ}(F), such term makes the Hilbert function of Lt_{σ}(I) different from the Hilbert function of Lt_{σ}(F). □

Keeping in mind proposition 2.62, a reasonable heuristics is : a potential leading term t is considered better than another potential leading term t′ with respect to F, σ if the Hilbert function of Lt_{σ}(F)∪{t} is lexicographically lesser than the Hilbert function of Lt_{σ}(F)∪{m}.

Proposition 2.63 Let R := k[x_{1}, …, x_{n}], w be a system of weights for R of type r, τ ∈ TO(ℕ^{r}), I be a monomial ideal of R and t, t′ ∈ T^{n}. Then

a) If ∂_{w}(t) > ∂_{w}(t′), then H_{R/(I,t)}^{w} ≥_{lex,τ} H_{R/(I,t′)}^{w}.

b) If ∂_{w}(t) = ∂_{w}(t′), then H_{R/(I,t)}^{w} ≥_{lex,τ} H_{R/(I,t′)}^{w} ⟺ H_{R/(I:(t))}^{w} ≤_{lex,τ} H_{R/(I:(t′))}^{w}.

c) H_{R/(I,t)}^{w} ≥_{lex,τ} H_{R/(I,t′)}^{w} ⟺ the first (w.r.t. τ) term of ⟨I, t⟩^{w} − ⟨I, t′⟩^{w} is positive.

Proof. The proof of a) is immediate and c) is a rewriting of proposition 2.32. The proof of b) follows from the main formula 1.110. □

Using proposition 2.63, an implementation of step b for w homogeneous ideals is the following algorithm:

Input L := {t_{1}, …, t_{k}} ⊂ T^{n}, w system of weights, I monomial ideal of R; Output t ∈ T^{n};

begin Discard from L all terms except the ones with minimum w degree; Discard from L all terms except the term t for which H_{R/(I:t)}^{w}((I, t)) is lexicographically maximal; return a random element of L.

end.

If the ideal is not homogeneous, one may use other heuristics, or even the Hilbert function heuristics on the ideal of leading terms. In practice, for non-homogeneous ideals, the Hilbert function heuristics on the ideal of leading terms works as well as for homogeneous ideals. Another choice is to use the ordering that, interpreted as system of weights, gives the maximum of homogeneity to the ideal. This last choice has not yet been tested.

2.7.4 Initial orderings

The choice of the initial term-ordering is very important, since it sets the initial cone, that will be further refined, but inside which the orders will remain throughout the algorithm. hence, even if it is possible to use the steps a and b in the same way as in the procedure Refine CurrentOrder, some improvement with respect to that procedure are useful.

A simple but effective approach is to consider all the sets of possible term-orderings of the whole initial list of polynomials, and then to choose the one with the minimal Hilbert function. The disadvantage of this method is that the cardinality of the sets grows very fast with the complexity of the generators of the input list. It is in general useful not to consider all possible term-orderings, but only the most promising.

Input F := {f_{1}, …, f_{k}} ⊂ k[x_{1}, …, x_{n}] =: R; Output σ ∈ TO(R); begin

1. Create the list L of all the possible term-orderings for the first p, p ≤ k polynomials in the input, p being the highest possible compatible with the available computational power;

2. Discard from L the elements with non minimal lexicographically Hilbert function.;

For every polynomial f_{i}, i : p … k.

a. the potential leading terms of f_{i} with respect to every term-ordering in L are found.

b. Every element of L is substituted with a compatible term-ordering for each potential leading term of f_{i}. c. Discard from L the term-orderings with non lexicographically minimal Hilbert function.

return one element of L. end.

The algorithm sketched above may be implemented and optimized using the techniques already shown during the discussion of the procedure RefineCurrentOrder.

Remark 2.64 Usually, a polynomial set would be interreduced before the computation of the Gröbner basis. In the dynamic case, such interreduction is meaningless, since at start there is no term-ordering. To obtain the same effect, in step 3, at the i^{th} iteration, f_{i} may be reduced with respect to {f_{1}, …, f_{i−1}} and each term-ordering in L, and the subsequent computation may be performed using these reduced forms.

Remark 2.65 If we put some constraint to the dynamic ordering that we are building, the Dynamic Algorithm works in the same way. the only difference is that, in step a, the system that are being solved contain the constraint. It is thus possible to use the Dynamic Algorithm for elimination ordering, degree-compatible ordering and so on.

An experimental version of the Dynamic Algorithm has been implemented in CoCoA 1.0, and some examples executed on a Macintosh LC. From this experience, it is possible to draw some conclusions

• The further the computation proceeds, the lesser the potential leading terms for every polynomial.

• The overhead due to the simplex algorithm is hence reasonable.

• The heuristics employed are not stable, in the sense that minimizing the Hilbert function step by step gives no guarantees of minimizing the Hilbert function over several steps.

• The term-ordering selected by the algorithm leads to simpler Gröbner basis (less polynomial, less degrees) than usual term-orderings. The number of pairs processed is also usually small. The coefficients often grow more than usual, sometimes explosively.

• The timings are inconclusive for the examples examined, except for binomial ideals, where the timings are quite good.

From this limited data, it is possible to conclude that the Dynamic Algorithm may be interesting in general for binomial examples, where the coefficient growth doesn’t happen, for examples with relatively few, quite dense polynomials, where the overhead is insignificant, and where it is of interest keeping the Gröbner basis small.

52 CHAPTER 2. GRÖBNER BASES

Syzygies and resolutions

In this chapter we examine some algorithm related to the syzygy computation, especially in the homogeneous case. The chapter is so structured :

minimal basis algorithm for homogeneous modules, section 3.1;

syzygy computation, section 3.2 and

resolution computation, sections 3.3-3.7.

3.1 Minimal basis

Definition 3.1 Let R := k[x_{1}, …, x_{n}] and M ⊂ R^{r} be an R module. Let L := (m_{1}, …, m_{k}) be a system of generators for M. Then L is a minimal system of generators or a minimal basis for M if L − {f_{i}} doesn’t generate M for any i : 1 … k.

Proposition 3.2 Let R := k[x_{1}, …, x_{n}] and M ⊂ R^{r} be a w homogeneous R module. Then all the minimal system of generators of M have the same number of elements.

Proof. Immediate from the Hilbert Function theory, ref. section 1.4. □

Proposition 3.3 With the notation of definition 3.1, let G be the reduced Gröbner basis of M with respect to a module term-ordering μ and L be a reduced system of generators of M. Then the polynomials that belong to both the lists L and G are a minimal basis of M.

Proof. Immediate. □

The construction of a minimal basis of an ideal/module (and the minimum number of generators) are relevant questions in themselves. From the computational point of view, the construction of a minimal bases may be interesting if further computations are required on the ideal e. g. intersection, resolution etc. etc.

From proposition 3.3, it is easy to deduce an easy algorithm to compute the minimal basis of M: we compute the Gröbner basis of (L), truncated to the maximum w degree of L, and then choose the elements in L which belong to the building basis. they are a minimal basis for M by proposition 3.3. Since it would be useful during the discussion of the computation of the minimal resolution, a version of the homogeneous Buchberger algorithm optimized for the computation of the minimal basis is shown below.

Input G := {g_{1}, …, g_{r}} ⊆ k[x], with g_{i} w homogeneous τ ∈ TO(R) w, system of weights for R

Output a minimal Gröbner basis of G.

begin F := G; d′ := min_{w}{∂_{w}(Lt_{tau}(G))}; L := generates the initial pairs from G whose w degree is w lesser than d′; d := ∂_{w}(in(⟨Lt_{τ} (G)⟩^{w} − ⟨(G)⟩^{w})); while L ≠ ∅ and ∂_{w}(SPoly (g_{i}, g_{j})) <_{w} d′ do begin

choose (g_{i}, g_{j}) ∈ L s.t. d = ∂_{w}(SPoly (g_{i}, g_{j}));

L:=L − {(g_{i}, g_{j})};

f := NF _{τ} (SPoly (g_{i}, g_{j}), F); if f ≠ 0 then F′:=F′ ∪ {h}; if d ≠ min_{w}{∂_{w}(SPoly (g_{i}, g_{j})) | (g_{i}, g_{j}) ∈ L} then

begin G′:=Interreduce(G′); L,G:=Upgrade^{w,d}(L, G′, G); L′:=∅; d := in(⟨Lt_{τ} (G)⟩^{w} − ⟨(G)⟩^{w});

endif; endwhile; return G ∩ F;

end.

Remark 3.4 For non-homogeneous module, proposition 3.3 doesn’t hold. To compute a minimal basis for a non-homogeneous module, we have to compute the syzygy module of M, and use this information to delete the redundant elements among the generators.

3.2 Syzygies

Definition 3.5 Let R := k[x_{1}, …, x_{n}], N ⊂ R^{m} be a R module and G := {g_{1}, …, g_{r}} a Gröbner basis of N. Let the module morphism ϕ be defined by

\begin{aligned}ϕ : & R^{r} & @ >>> & R^{m} \\ & e_{i} & ⇝ & g_{i} \end{aligned}

Then the R module Syz(G) := Ker (ϕ) ⊂ R^{r} it the syzygy module of G.

Proposition 3.6 Let R, N, G and ϕ be as in the definition 3.5. Let Lt(g_{i}) := t_{i}e_{n_{i}}, ψ be the map defined by

\begin{aligned}ψ : & R^{r} & @ >>> & R^{m} \\ & e_{i} & ⇝ & t_{i}e_{n_{i}} \end{aligned}

and S_{ij} := t_{j}/GCD(t_{i}, t_{j}), where (i, j) are the pairs of the Gröbner basis G. Then the syzygy module of G is generated by the so-called Taylor basis Γ := {S_{ij}f_{i} − S_{ji}f_{j}}.

Remark 3.7

1. A subset of Γ is sufficient to generate K; practical ways to determine such a subset are given in [Bu] and [GM]. The ”useless” elements of Γ, e. g. the elements outside of the sufficient subset, correspond to the useless pairs in the Buchberger algorithm.

2. The Buchberger algorithm applied to G (as described in [Bu] and [GM]) checks that for every pair (g_{j}, g_{j}) ∈ G, SPoly (g_{i}, g_{j}) → 0, e. g. we have SPoly (g_{i}, g_{j}) = ∑ c_{r}S_{r}g_{i_{r}}, for suitable constants c_{r} and terms s_{r}, and the sequence s_{r}t_{i_{r}} is strictly decreasing. Then g = g_{i,j} − ∑ c_{r}s_{r}f_{i_{r}} is a relation between the g_{l}. It is proved in [MM] that the polynomial g generate the module of relations.

3. In the ideal case, another criterion for useless pairs is known, namely a pair (g_{i}, g_{j}) is useless if Lt(g_{i}), Lt(g_{j}) are coprime; however these pairs are necessary while computing the syzygies, even if their corresponding syzygy is simple, consisting of g_{i}g_{j} − g_{j}g_{i}=0.

4. If G := {g_{1}, …, g_{r}} is not a Gröbner basis, we can find a (redundant) Gröbner basis G′ ⊇ G with the Buchberger algorithm. As a subproduct of the Buchberger algorithm we find the relations between the G′: if a pair simplifies to 0, then it gives a relation as above; if it does not, then adding the result of the simplification to G′ one restores the fact that pair simplifies to 0.

From a set of generators of the relations between the G′, one recovers a set of generators of the relations between the original G by back substitution: whenever we add an element to G′, we add to the relations one stating that the new element is linear combination of the preceding ones, so relations between the G are obtained easily. The idea is very similar to obtaining the Bézout identity from the euclidean algorithm; hence, a better algorithm can mimick the extended euclidean algorithm. Namely, instead of considering elements of M, we consider pairs consisting of an element of M and a vector; we start with the elements (g_{i}, v_{i}).

Whenever in the Buchberger algorithm we perform a computation on the first component, we perform the same operation on the second component. In this way, any pair (g, v) that we compute satisfies the assertion g = ⟨v, G⟩, where ⟨ , ⟩ denotes the canonical extension of the scalar product. Whenever in the Buchberger algorithm we obtain a zero (as first element of the pair) we have obtained a relation between the G_{i}. One sees easily that the result is precisely the same that one would have obtained with the procedure sketched above. We remark now that this procedure (we can call it “extended Buchberger”, copying from the extended Euclid algorithm), can be implemented as a Buchberger algorithm for modules, embedding everything in a suitable polynomial ring, where the computations then take place. Let us examine this process in detail.

Proposition 3.8 Let R := k[x_{1}, …, x_{n}], N be an R module generated by F := {f_{1}, …, f_{r}} and μ ∈ MTO(N). With the notation of theorem 1.88, let y be new variables, E be new modules variables and m_{i} ∈ k[x, E, y] be terms linearly independent over k[x, E]. Let ϕ : N → k[x, E] be a module morphism fulfilling the hypothesis of theorem 1.88. Consider the module morphism

\begin{aligned}χ : & N & → & k[x, E, y] \\ & f_{i} & ⇝ & ϕ(f_{i}) + m_{i} , \end{aligned}

and put on k[x, E, y] an ordering τ′′ compatible with χ, τ′ and such that the variables y are lexicographically lesser than the others. Compute with the module Buchberger algorithm the Gröbner basis of χ(N) with respect to τ′′. Then the resulting elements belonging to (y)k[x, E, y] are a Gröbner basis of the syzygy module with respect to τ′, while the y-homogeneous components of degree 0 of the remaining elements are a Gröbner basis of N with respect to τ′.

Proof. Follows from the embedding definition and the discussion above. □

Remark 3.9 If we discard the critical pairs between elements in (y)k[x, E, y], we don’t compute a Gröbner basis of the syzygy module, but only an (interreduced) system of generators. It is easy to find examples where computing first the syzygies and then their Gröbner bases is advantageous, but it is equally easy to find examples where it is not.

Example 3.10 Let R, M, ϕ and τ be as in the example 1.100. The terms y_{1}, y_{1}^{2}, y_{1}^{3} ∈ k[x, y, z, E, y_{1}] are linearly independent over k[x, y, z, E].

We use as embedding the morphism

χ : M → k[x, y, z, E, y_{1}]
f_{1} ⇝ ϕ(f_{1}) + y_{1} = x^{2}E + xyE^{2} − y^{2}E − yzE^{2} + y_{1}
f_{2} ⇝ ϕ(f_{2}) + y_{1}^{2} = x^{3}E − z^{3}E + xyE^{2} − z^{2}E^{2} + y_{1}^{2}
f_{3} ⇝ ϕ(f_{3}) + y_{1}^{3} = xyE^{2} + zE^{2} + y_{1}^{3}

and put on k[x, y, z, E, y_{1}] the term-ordering τ′ associated to the matrix

[ \begin{matrix}0 & 0 & 0 & 0 & 0 \\ 1 & 1 & 1 & 0 & 0 \\ 0 & 0 & −1 & 0 & 0 \\ 0 & −1 & 0 & 0 & 0 \\ 0 & 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 0 & 1 \end{matrix} ]

χ and τ′ fulfill our desiderata.

The Gröbner basis of χ(M) in k[x, y, z, E, y_{1}, y_{1}] with respect to the ordering τ′ is

x^{2}E − y^{2}E − yzE^{2} − zE^{2} − y_{1}^{3} + y_{1},

xyE^{2} + zE^{2} + y_{1}^{3},

xy^{2}E − z^{3}E + xzE^{2} − 2z^{2}E^{2} − zE^{2} + xy_{1}^{3} − xy_{1} − zy_{1}^{3} − y_{1}^{3} + y_{1}^{2},

y^{4}E+y^{3}zE^{2}−xz^{3}E+x^{2}zE^{2}+y^{2}zE^{2}−2xz^{2}E^{2}−xzE^{2}+x^{2}y_{1}^{3}−x^{2}y_{1}+y^{2}y_{1}^{3}−y^{2}y_{1}−xzy_{1}^{3}−xy_{1}^{3}+xy_{1}^{2},

yz^{4}E^{2} − x^{3}zE^{2} + 2x^{2}z^{2}E^{2} − y^{2}z^{2}E^{2} + z^{4}E^{2} + x^{2}zE^{2} − y^{2}zE^{2} − x^{3}y_{1}^{3} + x^{3}y_{1} + x^{2}zy_{1}^{3} + z^{3}y_{1}^{3} − z^{3}y_{1} + x^{2}y_{1}^{3} − x^{2}y_{1}^{2} − y^{2}y_{1}^{3} + y^{2}y_{1}^{2},

x^{4}zE^{2} − 2x^{3}z^{2}E^{2} − xz^{4}E^{2} + z^{5}E^{2} − x^{3}zE^{2} − yz^{3}E^{2} − yz^{2}E^{2} + x^{4}y_{1}^{3} − x^{4}y_{1} − x^{3}zy_{1}^{3} − xz^{3}y_{1}^{3} + xz^{3}y_{1} + z^{4}y_{1}^{3} − x^{3}y_{1}^{3} + x^{3}y_{1}^{2} + xy^{2}y_{1}^{3} − xy^{2}y_{1}^{2} − yz^{2}y_{1}^{3} − yzy_{1}^{3},

x^{4}yy_{1}^{3} − x^{4}yy_{1} − x^{3}yzy_{1}^{3} − xyz^{3}y_{1}^{3} + xyz^{3}y_{1} + yz^{4}y_{1}^{3} − x^{3}yy_{1}^{3} + x^{3}yy_{1}^{2} + xy^{3}y_{1}^{3} − xy^{3}y_{1}^{2} − x^{3}zy_{1} + x^{2}z^{2}y_{1}^{3} − y^{2}z^{2}y_{1}^{3} + z^{4}y_{1} + x^{2}zy_{1}^{2} − y^{2}zy_{1}^{2}.

The last element is the only one belonging to (y_{1})k[x, y, z, E], thus the syzygy module of M is generated by its counterimage [x^{4}y − xyz^{3} + x^{3}z − z^{4}, −x^{3}y + xy^{3} − x^{2}z + y^{2}z, −x^{4}y + x^{3}yz + xyz^{3} − yz^{4} + x^{3}y − xy^{3} − x^{2}z^{2} + y^{2}z^{2}].

Remark that the y_{1}-homogeneous component of degree 0 of the others element are the same Gröbner basis of N previously computed in the example 2.22.

For another approach that computes at the same time the Gröbner basis and its syzygies, see [MMT]

3.3 Resolutions

Definition 3.11 Let A be a ring, M, {M_{i} ≠ ∅}_{i∈S⊂ℕ} free A modules and

C : ⋯ @ >>> M_{i}@ >>> M_{i−1}@ >>> M_{1}@ >>> M_{0} = M i ∈ S

be a long exact sequence of A modules. Then C is a free resolution of M. If M is graded and the morphisms of C are graded morphism of degree 0, then C is a graded free resolution of M. The number #S is the length of C. Let C be a resolution of M. If there exists no other resolution of M whose length is lesser than ℓ(M), Then C is a minimal resolution of M Theorem 3.12 (Hilbert syzygy theorem) Let R; = k[x_{1}, …, x_{n}] and M an finitely generated graded R module. Then M has a finite graded free resolution of length ≤ n, by finitely generated free R modules

Theorem 3.13 Let M be a graded A module. Then every graded free minimal resolution of M has the same length. Moreover, the ranks and the shifts of the modules in the resolution are the same.

Proof. It follows easily from the Hilbert function theory of section 1.4. □

Remark 3.14 A simple way to build a free resolution of a module M is to compute M_{1} a syzygy module of M, M_{2} a syzygy module of M_{1} and so on. Then

C ⋯ @ >>> M_{i}@ >>> M_{i−1}@ >>> M_{1}@ >>> M_{0} = M

is a free resolution of M.

3.4 A Buchberger Algorithm for resolutions

The idea is to embed the data in a suitable polynomial ring and execute here a modified version of the homogeneous Buchberger algorithm for modules. A modification of the tail addition technique introduced in the tag variable syzygy algorithm is used to compute directly the minimal syzygies of every order. To keep the notation and the algorithm simple, the graduation of supposed to have type one. The higher type case is discussed in subsection 3.4.4

3.4.1 The environment

It is possible, using theorem 1.88, to embed the resolution of a graded R module M in a suitable polynomial ring with respect to any ordering on the different syzygy modules in the resolution. The direct product on the modules, with on it a product module term-ordering is considered, and its ordered embedding in a polynomial ring is done in according with theorem 1.88. Here the interest lies in minimal graded resolutions, hence just two term-orderings are examined in detail, the ”minimal“ term-ordering preserving the degrees, and the Shreyer’s ordering, ref. 3.4.5, (see [Sh]).

Proposition 3.15 Let R := k[x_{1}, …, x_{n}], M be a w graded R-module, where w := ((a_{1}, …, a_{n})) and

\begin{aligned}& & & M_{k} & & & & M_{0} & & M_{−1} \\ C : & 0 & ⟶ & R(α_{k,1}) ⊕ … ⊕ R(α_{k,l_{k}}) & ⟶^{ψ_{k}} & … & ⟶^{ψ_{1}} & R(α_{0,1}) ⊕ … ⊕ R(α_{0,l_{0}}) & ⟶^{ψ_{0}} & M \end{aligned}

its minimal graded free resolution. Let μ be the term-ordering on k[x, S, D, T] defined by the matrix

[ [ Γ_{τ} ]  0 0 0 ⋮ ⋮ ⋮ 0 0 0_{0 ⋯ 0  0 0 1}^{\begin{matrix}a_{1} & ⋯ & a_{n} \\ 0 & ⋯ & 0 \end{matrix}  \begin{matrix}0 & 1 & 0 \\ −1 & 0 & 0 \end{matrix}} ]

where Γ_{τ} is the matrix associated to the term-ordering τ on k[x]. Let S, T be new module variables and D be a new variable. Define α_{−1} as 0. Then the module morphism

\begin{aligned}ϕ : & ⨁_{i=−1}^{k} ⨁_{j=1}^{l_{k}} R_{i}(α_{i,j}) & ⟶ & k[x, S, D, T] \\ & e_{i,j} & ⇝ & S^{i+1}D^{−α_{i,j}}T^{j} \end{aligned}

is injective and ϕ is homogeneous of degree 0 if the weights on k[x, S, D, T] are (a_{1}, …, a_{n}, 0, 1, 0).

Proof. Easy check. □

Remark 3.16 The computations during the Buchberger algorithm for resolutions are performed on (k[x, S, D, T], μ). The ordering μ is not a ring term-ordering, but its restriction to Im ϕ is.

Remark 3.17 The embedding ϕ keeps track of the degrees (shifts) using the variable D. The two module variables S and T, are used as position markers, within the resolution and the modules respectively.

Remark 3.18

• The term-ordering on ⨁_{i=−1}^{k} ⨁_{j=1}^{l_{k}} R_{i}(α_{i,j}) induced by ϕ, μ is compatible with the shifts.

• The term-ordering induced by μ on the image of M_{0} is τ. The orderings induced on the images of M_{i} are degree-compatible term-orderings. The same holds for the induced term-orderings on M_{i}.

• The variables S and T are lexicographically lesser than the others.

• Between terms of a given weighted degree, the greater is the one with the lesser exponent of S. I. e. the components of the resolution are arranged by σ in decreasing order.

Definition 3.19 Let f ∈ k[x, S, D, T]. Then

• S-head (f) is the homogeneous component of f of lesser S-degree.

• S-tail (f) = f − S-head (f).

• S-ecart (f) = Degree_{S}(S-head (f)) − Degree_{S}(S-tail (f)).

Example 3.20 Let

M := ([0, t^{2}, x^{2} − t^{2}], [0, 0, y^{3} − t^{3}], [0, 0, z^{4} − t^{4}]) ⊂ (k[x])^{3}

be a module over the ring R := k[x, y, z, t] graded with the standard graduation. A minimal graded free resolution of M is

M_{1}  M_{0}  M_{−1}
0 @ >>> R(−7) @ > ψ_{1} >  > R(−2) ⊕ R(−3) ⊕ R(−4) @ > ψ_{0} >  > M
e_{11} ⇝ [0, −t^{4} + z^{4}, t^{3} − y^{3}]  \begin{matrix}e_{01} & ⇝ & [0, t^{2}, x^{2} − t^{2}] \\ e_{02} & ⇝ & [0, 0, y^{3} − t^{3}] \\ e_{03} & ⇝ & [0, 0, z^{4} − t^{4}]. \end{matrix}

On k[x, y, z, t, S, D, T] there is the term-ordering μ defined by the matrix

[ \begin{matrix}1 & 1 & 1 & 1 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & −1 & 0 & 0 \\ 1 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 1 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 1 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 1 \end{matrix} ]

the embedding is

ϕ : M_{1} ⊕ M_{0} ⊕ M_{−1} @ > >> k[x, y, z, t, S, D, T] ; \begin{matrix}e_{11} & ⇝ & S^{2}D^{7}T \\ e_{01} & ⇝ & SD^{2}T \\ e_{02} & ⇝ & SD^{3}T^{2} \\ e_{03} & ⇝ & SD^{4}T^{3} \\ e_{−1 1} & ⇝ & T \\ e_{−1 2} & ⇝ & T^{2} \\ e_{−1 2} & ⇝ & T^{3} \end{matrix}

Hence, the generators of M is interpreted through ϕ as

\begin{matrix}[0, t^{2}, x^{2} − t^{2}] & ⇝ & t^{2}T^{2} + x^{2}T^{3} − t^{2}T^{3} \\ [0, 0, y^{3} − t^{3}] & ⇝ & y^{3}T^{3} − t^{3}T^{3} \\ [0, 0, z^{4} − t^{4}] & ⇝ & z^{4}T^{3} − t^{4}T^{3} \end{matrix}

and the generator of M_{0} as

[0, −t^{4} + z^{4}, t^{3} − y^{3}] ⇝ −t^{4}SD^{3}T^{2} + z^{4}SD^{3}T^{2} + t^{3}SD^{4}T^{3} − y^{3}SD^{4}T^{3}

If f = xyD^{3}T^{2} + x^{2}yD^{2}T + xSD^{4}T + x^{3}SD^{2}T, then

- S-ecart (f) = 1;

- S-head (f) = xyD^{3}T^{2} + x^{2}yD^{2}T;

- S-tail (f) = xSD^{4}T + x^{3}SD^{2}T.

3.4.2 The algorithm

The idea, borrowed from the tag variable syzygy algorithm, is to keep track of the computations on an element through the addition of a term in additional variables “tail”. To avoid special cases, and additional notation, the input polynomials are considered interreduced. The operations are done in the module environment.

The pairs are processed and kept in according with the ordering described in proposition 3.15, using the same method as in the minimal basis algorithm, 3.1, since the problems are quite similar. At start, the Gröbner basis C is empty, and in the pair list L there are the input polynomials, as singleton pairs. The S-polynomial of a singleton pair is the polynomial itself.

The pairs in L of least degree d are then reduced by C, and the results are kept in the auxiliary list C′. During the addition to C′, to the resulting polynomials is added a tail if necessary 3.4.2.The reduction procedure is described just below in 3.4.2. When all the pairs of degree d have been processed, the polynomials in C′ are interreduced, to the resulting polynomials is added a tail if necessary 3.4.2, and the pairs of the resulting polynomials are added to L and the polynomial themselves are added to C. The list C′ is emptied.

As noted in the discussion of the minimal basis algorithm 3.1, at the moment of the insertion in the basis C the polynomials are in definitive form: no further insertion will ever be able to modify them.

Hence, the algorithm described above is a mix of the minimal basis algorithm, and the tag variable syzygy algorithm.

Simplification

The lists C_{i} = {c_{i,1}, …, c_{i,k_{i}}} collect the elements of C of degree i. The lists C_{i}^{∗} collect the marked elements of C_{i}.

The variable S is a module variables. Let χ be the current polynomial processed by the Buchberger algorithm. The tail addition strategy will assure that it will be of S-ecart 0 or 1. The simplifications allowed are different in the two cases:

• if χ is of S-ecart 1 and the monomial being simplified is in the S-head, then it is simplified with elements of C.

• Otherwise χ is simplified with elements of {S-head (f) | f ∈ C}

Definition 3.21 The procedure described above is the Special Normal Form procedure (SNF ).

Tail addition

When χ := a x^{α}S^{i}D^{k}T^{l}+⋯ is no longer simplifiable, if χ is of S-ecart 0 then S-tail (χ) := S^{i+1}D^{|α|+k}T^{j}, where j is #C_{i} + #Ci^{′}. The element χ + S-tail (χ) is marked and will referred to as c_{i,j}^{∗}. Let a_{i,j} be |α| + k.

Remark 3.22

a) The procedure SNF terminates since the usual procedure Normal Form terminates.

b) If the S-ecart of χ is at most 1 it will remain so throughout and at the end of the reduction. item[g)] The points a) through d) of remark 2.12 are valid for the procedure SNF

Remark 3.23 As is shown in the subsequent subsection, and similarly to the tag variable syzygy algorithm, if S-ecart (χ) = 0, the element χ gives a syzygy, hence a new generator is added to the opportune syzygy module in the resolution. The minimality of this syzygy is proved in theorem 3.26. The position of this generator in the resolution is given by the exponent of S, its position in the syzygy module in given by the exponent of T and the corresponding shift is given by its weighted degree. Moreover, the tail and reduction strategies assure that whenever in a term S, T appears with exponents i, j, then in the same term D will appear with exponent a_{i,j};

Throughout the algorithm, w is the weighted degree defined in proposition 3.15.

Buchberger Algorithm for Resolutions

Input G := {g_{1}, …, g_{r}} ⊆ k[x, S, D, T], g_{i} homogeneous; Output {R_{1}, …, R_{k}}, where R_{i} is a minimal basis of the i^{th} syzygy module of (G)

and k is the length of a minimal graded free resolution of (G).

begin C := ∅; C′ := ∅; L:= generates the initial pairs; d:=min{wdeg(SP oly(g_{i}, g_{j})) | (g_{i}, g_{j}) ∈ L}; while L ≠ ∅ do begin

choose (g_{i}, g_{j}) ∈ L s.t. d = wdeg(SP oly(g_{i}, g_{j}));

L:=L − {(g_{i}, g_{j})};

f:=SpecialNormalForm_{σ}(SP oly(g_{i}, g_{j}), C);

if f ≠ 0 then begin if S-ecart (h) = 0 then

begin h:=h + T ail(h)}; mark h; C′:=C′ ∪ {h};

else

C′:=C′ ∪ {h}; endif;

endif if d ≠ min{wdeg(SP oly(g_{i}, g_{j})) | (g_{i}, g_{j}) ∈ L} then

begin C′:=Interreduce(C′); L,C:=Upgrade(L, C′, C); L′:=∅; d:=min{wdeg(SP oly(g_{i}, g_{j})) | (g_{i}, g_{j}) ∈ L};

endif; endwhile; return {f ∈ B | f marked and wdeg(f) = i}_{i∈ℕ};

end.

Procedure SpecialNormalForm

Input f ∈ k[x, S, D, T]; C ⊂ k[x, S, D, T]. Output the special normal form of f.

begin h:=0; while S-ecart (f) = 1 do

begin

while exists ∃g ∈ G s.t. Lt(g) | Lt(f) do

begin choose g ∈ G s.t. t Lt(g) = Lt(f); f:=f − t g;

endwhile; if S-ecart (f) = 1 then begin

h:=h + Lt(f); f:=f − Lt(f);

endif; endwhile;

return h+NormalForm(f, {S-head (f) | f ∈ C}); end.

Procedure Upgrade

Input L, C′, C ⊂ k[x, S, D, T]. Output L, C.

begin B_{i}:=∅; foreach h ∈ L′ do

begin

if S-ecart (h) = 0 then

begin h:=h + T ail(h)}; mark h; C:=C ∪ {h};

else

C:=C ∪ {h};B := B ∪ {S-Head(h)}; endif;

L:=Upgrade the S-Polys in L with respect to C and h using the G-M criteria endfor;

return L, G; end.

3.4.3 Termination and correctness

Since the resolution algorithm is a modified Buchberger algorithm, termination and correctness of the output have to been proved. The notation used in this subsection have been introduced above.

Proposition 3.24 In the course of the algorithm, if f ∈ C then f = f_{i} + f_{i+1}, f_{i}, f_{i+1} homogeneous in S of degrees i and i + 1 respectively, and substituting in f_{i+1} the term x^{α_{n}}S^{i}D^{c_{i,j}}T^{j} with c_{i,j} we obtain f_{i}. Hence, f_{i+1} is the syzygy of some elements in M_{i}. Moreover, as above, f_{i} ∈ M_{0} or f_{i} ∈ Syz (M_{i−1}).

Proof. This follows easily from the definition of tail 3.4.2 and of the reduction strategy 3.4.2. □

Remark 3.25 Let g be the result of the reduction of f with the strategy explained above and the final interreduction of the same-degree polynomials. Then, since S-polynomials other than the initial ones are created from elements of C (S-ecart = 1), for an S-polynomial f, one of the subsequent proposition holds:

1) the S-ecart of f is 0, (f is the special S-polynomial of an element of the input) and then f is reduced by the S-heads of elements in C only. The resulting polynomial belongs to the Gröbner basis of M_{0}.

2) the S-ecart of f is 1, hence f ∈ M_{i} ⊕ M_{i+1}. By proposition 3.24, S-head (f) ∈ Syz (M_{i−1}) = M_{i} and S-tail (f) ∈ Syz (M_{i}) = M_{i+1}. Then while S-ecart (f) = 1, f is reduced by elements in C, whose S-heads and S-tails belong to M_{i} and M_{i+1} respectively, and then by the S-heads of elements in C, which belong to M_{i+1}. Hence,

a) If g = 0, then the element f is the Gröbner combination of elements in M_{i}, and its syzygy is the Gröbner combination of elements in M_{i+1}.

b) If g ≠ 0 and S-ecart (g) = 0, then S-head (f) → 0 and a syzygy of M_{i} has been found, S-tail (f), which is then an element of M_{i+1}; a tail is added to it, the element is marked and it is added to C.

c) If g ≠ 0 and S-ecart (g) ≠ 0, then (S-head (g)) is an element of the Gröbner basis of M_{i}, with its tail (S-tail (g)) ∈ M_{i+1}. Then g is added to C.

Theorem 3.26 Let the polynomials in ∪_{j≤d}C_{j} of S-degree i be C_{d,i}. Using the notation introduced above, after the computation of the pairs in degree d, for each i ≥ 0

i) the elements belonging to C_{d,i} are the reduced Gröbner basis of M_{i} truncated to degree d with respect to the term-ordering described in remark 3.18;

ii) the elements belonging to C_{d,i} are a minimal basis of M_{i}

Proof.

i) From remark 3.25, and the description of the algorithm, it follows that:

the algorithm computes the reduced Gröbner basis of M_{0} truncated in degree d with respect to the term-ordering on M_{0}.

For the syzygy module M_{i}, the generators in degree ≤ d are generated by the computation of the Gröbner basis of the syzygy module M_{i−1}.

The resolution algorithm computes the reduced Gröbner basis of M_{i} with respect to the degreecompatible term-ordering described by corollary 3.18.

ii) Form i), the elements of C_{d,i} are a Gröbner basis of (M_{i}). The unmarked elements of C_{d,i} are reductions of S-polynomials of the marked elements, hence their polynomial combination, hence are not part of the minimal basis. Thus, the marked elements are a basis by themselves, and, since they have survived the reduction process, a minimal basis. □

Remark 3.27 No element which is not in some minimal or Gröbner basis is ever created. Hence, it is not necessary to remove any element already found by checking some syzygy, and no syzygy refers to such an element. In this sense, the algorithm is minimal.

Hilbert Syzygiensatz guarantees that a finite minimal resolution of M exists. Hence, after a finite number of steps, the algorithm has found one such resolution by theorem 3.26. Gröbner bases for every syzygy module has been computed, hence the list L is empty, and the algorithm stops. The shifts of the resolution are given by the degree of the marked elements in the lists B_{i} (ref. remark 3.23). Hence,

Corollary 3.28 Let M be an homogeneous R module. Them the Buchberger algorithm for resolution, with as input the generators of M, terminates and computes a minimal graded resolution of M.

By modifying the tail addition procedure this algorithm computes

• the Gröbner basis of the input, if no tail is added;

• the syzygies of the input, if tail addition is performed only for elements of S-degree 0;

• the minimal resolution of the input, with the full tail addition.

No modifications are necessary to switch from ring to module resolution computations, apart from the trivial ones.

3.4.4 Multigraded case

If the R module M is graded with respect to the system of weights w_{1}, …, w_{r}, of type > 1, some modifications are necessary to exploit the multigraded structure :

• A multihomogeneous version of the Buchberger algorithm has to be used.

• A new module variable D_{i} is introduced for each weight to keep track of the degree with respect to that weight.

• The term-ordering σ on k[x, S, D, T] is defined by the matrix

[ [ Δ_{τ} ]  \begin{matrix}0 & 0 & ⋯ & 0 & 0 \\ ⋮ & ⋮ & ⋮ & ⋮ & ⋮ \\ 0 & 0 & ⋯ & 0 & 0 \end{matrix}_{0  ⋯ 0  0 0 ⋯ 0 1}^{\begin{matrix}w_{1,1} & ⋯ & w_{1,n} \\ ⋮ & ⋮ & ⋮ \\ w_{r,1} & ⋯ & w_{r,n} \\ 0 & ⋯ & 0 \end{matrix}  \begin{matrix}0 & 1 & 0 & 0 & 0 \\ ⋮ & 0 & ^{.}^{.}. & 0 & ⋮ \\ 0 & 0 & 0 & 1 & 0 \\ −1 & 0 & ⋯ & 0 & 0 \end{matrix}} ]

where w_{1}, …, w_{n} are the weights of x_{1}, …, x_{n} and Δ_{τ} is the matrix generated by the first n−r +1 rows of the matrix associated to the term-ordering τ on k[x] linearly independent from w_{1}, …, w_{r}.

Since the notation in the multigraded case are quite heavy, while the modifications are minor, the details are left to the reader.

3.4.5 Other orderings

The term-ordering chosen in the Buchberger algorithm for resolutions keeps track of the weighted degree of a pair with minimal overhead (the introduction of one variable). Any other term-ordering on k[x, S, D, T] compatible with ϕ, μ which fulfills the conditions of remark 3.18 may be used in this resolution algorithm. Since the Schreyer ordering is well known for its utility in syzygy and resolution computations [Sh], [CDNR], it is here examined in detail.

Definition 3.29 Let M be a R module, let

C : 0 ⟶ M_{k} ⟶^{ψ_{k}} … ⟶^{ψ_{1}} M_{0} ⟶^{ψ_{0}} M = M_{−1}

be a minimal resolution of M and e_{i,j} the j^{th}-generator of the i^{th}-module. Let μ_{k}, …, μ_{−1} be module term-orderings on M_{k}, …, M_{−1} and let Lt_{μ_{i}}(ψ_{i}(e_{i,j})) be t_{i,j}e_{i,m}. Let x^{a a a}e_{i,j} and x^{bbb}e_{i,j′} be module terms. If μ_{k}, …, μ_{−1} are such that

x^{a a a}e_{i,j} >_{μ_{i}} x^{bbb}e_{i,j′} ⟺ x^{a a a}t_{i,j}e_{i,m} >_{μ_{i−1}} x^{bbb}t_{i,j′}e_{i,m′} or x^{a a a}t_{i,j}e_{i,m} = x^{a a a}t_{i,j′}e_{i,m′} and m < m′

then μ_{k}, …, μ_{−1} are Schreyer orderings for C.

Let us show the embedding and term-ordering associated to Schreyer orderings for the Buchberger algorithm for resolution.

Proposition 3.30 With the notation introduced above and in the habitat discussion, let μ_{k}, …, μ_{−1} be a Shreyer’s ordering for C, a minimal graded resolution of an homogeneous R module M. Let μ_{S} be the term-ordering associated to the matrix

[ \begin{matrix}w_{1} ⋯ w_{n} & 0 & 0 \\ 0 ⋯ 0 & −1 & 0 \\ [ Δ_{τ} ] & 0 ⋮ 0 & 0 ⋮ 0 \\ 0 ⋯ 0 & 0 & 1 \end{matrix} ]

where the matrix Δ_{τ} is defined by the first n − 1 rows linearly independent from (w_{1}, …, w_{n}) of the matrix associated to the term-ordering τ on k[x]. Then the module morphism

\begin{aligned}ψ : & ⨁_{i=−1}^{k} ⨁_{j=1}^{l_{k}} R(α_{i,j}) & ⟶ & (k[x, S, T], μ_{S}) \\ & e_{i,j} & ⇝ & Lt_{μ_{i}}(ψ_{i}(e_{i,j}))S^{i+1}T^{j} \end{aligned}

is injective and ψ_{|(M_{i},μ_{i})} is ordered. Moreover, ψ is also homogeneous of degree 0 if the weights of k[x, S, T] are (w_{1}, …, w_{n}, 0, 0). Moreover, the

Proof. Easy check. □

Remark 3.31 Since the purpose of variable D was to keep track of shifts, and this is now done through a different definition of the embedding, this variable is now useless. The price are denser terms to deal with.

The only modification to the algorithm in order to use Schreyer’s ordering is the tail definition. Using the notation introduced earlier,

• for an element χ, with Lt(χ) = x_{1}^{a_{1}} ⋯ x_{n}^{a_{n}}S^{i}T^{j}, we define T ail(χ) as x_{1}^{a_{1}} ⋯ x_{n}^{a_{n}}S^{i+1}T^{j′}.

It is immediate to check that this tail and order definition fulfill the desiderata, and that they give a slight different version of the algorithm described above.

Remark 3.32 It is always possible to apply Hilbert Driven techniques to the minimal resolution algorithms. If more information is known, like the regularity of the minimal resolution, further optimizations are possible. The savings are often substantial. For a full analysis see[CDNR]. The methods there describes are applicable to our minimal resolution algorithm.

3.5 An example

Example 3.33 Let I := (f_{1} := x + y, f_{2} := y^{2}, f_{3} := yz^{2} + u^{3}) be an homogeneous (with respect to the standard weights) ideal of k[x, y, z, u]. The minimal graded resolution of I is

0@ >>> R(−6)@ >>> R(−3) ⊕ R(−4) ⊕ R(−5)@ >>> R(−1) ⊕ R(−2) ⊕ R(−3)

The generators of I are interreduced; the initial pairs are : (f_{1}, 0)_{1}(degree1), (f_{2}, 0)_{2}, (f_{3}, 0)_{3}.

(f_{1}, 0)_{1}@ >>> x + y. A minimal element.

(f_{2}, 0)_{2}@ >>> y^{2}. A minimal element.

C := {c_{1,1}^{∗} := x + y + SDT, c_{2,1}^{∗} := y^{2} + SD^{2}T^{2}}. Computation in degree 3

P airs := {(c_{1,1}^{∗}, c_{2,1}^{∗},)_{3}, (f_{3}, 0)_{3}, }.

SP oly(c_{1,1}^{∗}, c_{2,1}^{∗}) = y^{3} − SD^{2}T^{2}x + SDT y^{2}@ > c_{2,1}^{∗} >> −xSD^{2}T^{2} + y^{2}SDT − ySD^{2}T^{2}. A minimal element (Its S-degree is 0). SP oly(f_{3}, 0) = yz^{2} + u^{3}. A minimal element.

C := C ∪ C_{3}{b_{3,1}^{∗} := −xSD^{2}T^{2} + y^{2}SDT − ySD^{2}T^{2} + S^{2}D^{3}T, c_{3,2}^{∗} := yz^{2} + u^{3} + SD^{3}T^{3}}. Computations in degree 4

The pairs {(c_{1,1}^{∗}, c_{3,1}^{∗}), (c_{2,1}^{∗}, c_{3,1}^{∗}), (c_{3,1}^{∗}, c_{3,2}^{∗})} are not possible modules pairs, since the exponents of S, T of their leading terms are different. P airs := {(c_{1,1}^{∗}, c_{3,2}^{∗},)_{4}, (c_{2,1}^{∗}, c_{3,2}^{∗})_{4}, }.

SP oly(c_{1,1}^{∗}, c_{3,2}^{∗}) = y^{2}z^{2} − xu^{3} − xSD^{3}T^{3} + yz^{2}SDT @ > c_{2,1}^{∗} >> −xu^{3} − xSD^{3}T^{3} − z^{2}SD^{2}T^{2} + yz^{2}SDT @ > c_{1,1}^{∗} >> yu^{3} − xSD^{3}T^{3} − z^{2}SD^{2}T^{2} + yz^{2}SDT + u^{3}SDT =: g_{1}. SP oly(c_{2,1}^{∗}, c_{3,2}^{∗}) = −yu^{3} − ySD^{3}T^{3} + z^{2}SD^{2}T^{2} =: g_{2}. g_{1}@ > g_{2} >> −xSD^{3}T^{3} − ySD^{3}T^{3} + yz^{2}SDT + u^{3}SDT. A minimal element.

C := C ∪ C_{4} := {c_{4,1}^{∗} := −xSD^{3}T^{3} − ySD^{3}T^{3} + yz^{2}SDT + u^{3}SDT + S^{2}D^{4}T^{2}, c_{4,2} := −yu^{3} − ySD^{3}T^{3} + z^{2}SD^{2}T^{2}}.

Computations in degree 5

The pairs (c_{1,1}^{∗}, c_{4,1}^{∗}), (c_{2,1}^{∗}, c_{4,1}^{∗}), (c_{3,1}^{∗}, c_{4,1}^{∗}), (c_{3,2}^{∗}, c_{4,1}^{∗})(c_{3,1}^{∗}, 6c_{)}, (c_{4,1}^{∗}, c_{4,2}) are useless. P airs := {(c_{1,1}^{∗}, c_{4,2},)_{5}, (c_{2,1}^{∗}, c_{4,2})_{5}, (c_{3,2}^{∗}, c_{4,2})_{6}}.

SP oly(c_{1,1}^{∗}, c_{4,2}) = y^{2}u^{3}−SD^{3}T^{3}xy+SD^{2}T^{2}xz^{2}+SDT yu^{3}@ > c_{2,1}^{∗} >> −xySD^{3}T^{3}+xz^{2}SD^{2}T^{2}− u^{3}SD^{2}T^{2} + yu^{3}SDT @ > b_{4,1}^{∗} >> y^{2}SD^{3}T^{3} + xz^{2}SD^{2}T^{2} − y^{2}z^{2}SDT − u^{3}SD^{2}T^{2}@ > b_{3,1}^{∗} >> y^{2}SD^{3}T^{3} − yz^{2}SD^{2}T^{2} − u^{3}SD^{2}T^{2} =: g_{1}. A minimal element. SP oly(c_{2,1}^{∗}, c_{4,2}) = −y^{2}SD^{3}T^{3} + yz^{2}SD^{2}T^{2} + u^{3}SD^{2}T^{2} =: g_{2}. g_{1}@ > g_{2} >> 0.

B := B ∪ {b_{6,1}^{∗} := −y^{2}SD^{3}T^{3} + yz^{2}SD^{2}T^{2} + u^{3}SD^{2}T^{2}}. C := C ∪ C_{5}{c_{5,1}^{∗} := −y^{2}SD^{3}T^{3} + yz^{2}SD^{2}T^{2} + u^{3}SD^{2}T^{2} + S^{2}D^{5}T^{3}}.

Computation in degree 6

The pairs (c_{1,1}^{∗}, c_{5,1}^{∗}), (c_{2,1}^{∗}, c_{5,1}^{∗}), (c_{3,2}^{∗}, c_{5,1}^{∗}), (c_{4,2}, c_{5,1}^{∗}) are useless.

P airs := {(c_{3,2}^{∗}, c_{4,2})_{6}, (c_{3,1}^{∗}, c_{5,1}^{∗})_{6}, (c_{4,1}^{∗}, c_{5,1}^{∗})_{6}}.

SP oly(c_{3,1}^{∗}, c_{5,1}^{∗}) = y^{3}SD^{3}T^{3} − y^{4}SD^{2}T^{2} + xyz^{2}SD^{2}T^{2} + xu^{3}SD^{2}T^{2} + xS^{2}D^{5}T^{3} − y^{2}S^{2}D^{4}T^{2}@ > c_{5,1}^{∗} >> −y^{4}SD^{2}T^{2} +xyz^{2}SD^{2}T^{2} +SD^{2}T^{2}y^{2}z^{2} +SD^{2}T^{2}xu^{3} +SD^{2}T^{2}yu^{3} +S^{2}D^{5}T^{3}x+S^{2}D^{5}T^{3}y− S^{2}D^{4}T^{2}y^{2}@ > c_{3,1}^{∗} >> −y^{4}SD^{2}T^{2} +y^{3}z^{2}SDT +xu^{3}SD^{2}T^{2} +yu^{3}SD^{2}T^{2} +xS^{2}D^{5}T^{3} +yS^{2}D^{5}T^{3} − y^{2}S^{2}D^{4}T^{2} +yz^{2}S^{2}D^{3}T @ > c_{3,1}^{∗} >> −y^{4}SD^{2}T^{2} +y^{3}z^{2}SDT +y^{2}u^{3}SDT +xS^{2}D^{5}T^{3} +yS^{2}D^{5}T^{3}y − y^{2}S^{2}D^{4}T^{2} + yz^{2}S^{2}D^{3}T + u^{3}S^{2}D^{3}T.

SP oly(c_{4,1}^{∗}, c_{5,1}^{∗}) = y^{3}SD^{3}T^{3} + xyz^{2}SD^{2}T^{2} − y^{3}z^{2}SDT + xu^{3}SD^{2}T^{2} − y^{2}u^{3}SDT + xS^{2}D^{5}T^{3} − y^{2}S^{2}D^{4}T^{2}@ > c_{5,1}^{∗} >> xyz^{2}SD^{2}T^{2} + y^{2}z^{2}SD^{2}T^{2} − SDT y^{3}z^{2} + SD^{2}T^{2}xu^{3} + yu^{3}SD^{2}T^{2} − y^{2}u^{3}SDT + xS^{2}D^{5}T^{3} + yS^{2}D^{5}T^{3} − y^{2}S^{2}D^{4}T^{2}@ > c_{3,1}^{∗} >> xu^{3}SD^{2}T^{2} + yu^{3}SD^{2}T^{2} − y^{2}u^{3}SDT + xS^{2}D^{5}T^{3} + yS^{2}D^{5}T^{3} − y^{2}S^{2}D^{4}T^{2} + yz^{2}S^{2}D^{3}T @ > c_{3,1}^{∗} >> xS^{2}D^{5}T^{3} + yS^{2}D^{5}T^{3} − y^{2}S^{2}D^{4}T^{2} + yz^{2}S^{2}D^{3}T + u^{3}S^{2}D^{3}T. A minimal element.

SP oly(c_{3,2}^{∗}, c_{4,2}) = u^{6} − yz^{2}SD^{3}T^{3} + z^{4}SD^{2}T^{2} + u^{3}SD^{3}T^{3}.

C := C ∪ C_{6}{c_{6,1} := −y^{4}SD^{2}T^{2} + y^{3}z^{2}SDT + y^{2}u^{3}SDT + xS^{2}D^{5}T^{3} + yS^{2}D^{5}T^{3}y − y^{2}S^{2}D^{4}T^{2} + yz^{2}S^{2}D^{3}T + u^{3}S^{2}D^{3}T, c_{6,2}^{∗} := xS^{2}D^{5}T^{3} + yS^{2}D^{5}T^{3} − y^{2}S^{2}D^{4}T^{2} + yz^{2}S^{2}D^{3}T + u^{3}S^{2}D^{3}T, c_{6,3} := u^{6} − yz^{2}SD^{3}T^{3} + z^{4}SD^{2}T^{2} + u^{3}SD^{3}T^{3}}.

All pairs of degree ≥ 7 reduce to zero.

It is easy to read the Betti numbers from the marked elements in B :

0 ⟶ \underbrace{\underbrace{R(−6)}_{1 poly deg 6^{c{∗ \atop 6,2}}}}_{S-deg 2} ⟶ \underbrace{\underbrace{R(−3)}_{1 poly deg 3^{c{∗ \atop 3,1}}} ⊕ \underbrace{R(−4)}_{1 poly deg 4^{c{∗ \atop 4,1}}} ⊕ \underbrace{R(−5)}_{1 poly deg 5^{c{∗ \atop 5,1}}}}_{S-deg 1} ⟶ \underbrace{\underbrace{R(−1)}_{1 poly deg 1^{c{∗ \atop 1,1}}} ⊕ \underbrace{R(−2)}_{1 poly deg 2^{c{∗ \atop 2,1}}} ⊕ \underbrace{R(−3)}_{1 poly deg 3^{c{∗ \atop 3,2}}}}_{S-deg 0}

3.6 Statistics

The Buchberger Algorithm for resolutions has complete compatibility with, and make full use of all the usual tricks like Gebauer-Möller criteria etc.

Examples

The examples has been chosen from three classes :

• Determinantal ideals. Few reduction per pair. Polynomials have large supports. Resolutions with few degrees for every level. The schreyer’s ordering is the best one.

M_{3×4}^{2} : 2 × 2 minors of the generic 3 × 4 matrix.

M_{4×5}^{2} : 2 × 2 minors of the generic 4 × 5 matrix.

Comm_{3×3} : the ideal of the entries of the matrix A·B−B·A, where A := (x_{i,j}) and B := (y_{i,j}).

• Cyclic ideals. Lots of reductions per pair. Polynomials have large supports. Resolutions levels with several degrees. The minimal ordering is the best one.

C_{5} : Homogeneous Cyclic 5.

C′_{5} : A slight variation of C_{5}.

C_{6} : Homogeneous Cyclic 6, with the homogeneizing variable as the biggest one.

C_{7} : Homogeneous Cyclic 7, with the homogeneizing variable as the biggest one. This is the first time, to my knowledge, that this resolution has been computed. The computation with the Shreyer’s ordering and the computation with the usual CoCoA resolution algorithm have been interrupted after 20h Cpu time.

• Generic polynomial ideals. Lots of reductions per pair, very large supports. Very simple resolutions. The orderings are roughly equivalent.

D_{4,4}^{4} : 4 random dense polynomial of degree 4 in 4 variables.

D_{4,5}^{4} : 4 random dense polynomial of degree 5 in 4 variables.

D_{4}^{5,4} : 4 random dense polynomial of degree 5 in 5 variables.

For every example, are shown two set of statistics, Minimal refers to the computation using the ordering introduced in proposition 3.15, and Schreyer refers to the computation using Schreyer’s ordering (subsection 3.4.5). Pairs is the number of pairs processed and Reductions is the number of reduction performed.

Name  Pairs Reductions  Time
M_{3×4}^{2} Shreyer  277  1260  0.41 s
M_{3×4}^{2} Minimal  292  1929  0.71 s
M_{4×5}^{2} Shreyer  1183  9439  4.61 s
M_{4×5}^{2} Minimal 3591  26539  27.53 s
Comm_{3×3} Shr  405  9434  3.36 s
Comm_{3×3} Deg  584  17537  12.97 s
D_{4,4}^{4} Shreyer  196  10653  7.16 s
D_{4,4}^{4}Minimal  196  9163  6.67 s
D_{4,5}^{4} Shreyer  356  46249  34.84 s
D_{4,5}^{4} Minimal  343  43226  32.59 s
D_{4}^{5,4} Shreyer  343  494 640.19 s
D_{4}^{5,4} Minimal  343  494 529.85 s
C_{5} Shreyer  226  7930  1.60 s
C_{5} Minimal  191  7917  1.30 s
C′_{5} Shreyer  329  21383  5.98 s
C′_{5} Minimal  310  19654  4.81 s
C_{6} Shreyer  526  261026 1686.61 s
C_{6} Minimal  305  71307  79.28 s
C_{7} Minimal  1325  2314971 9 h 340 s

To measure the performance of the resolution algorithm with respect to the CoCoA standard resolution algorithm [CDNR] below there are the comparative timings for the examples.

The statistics for the computations using as coefficient field ℤ_{32003}.

Name  Minimal Schreyer CDNR
M_{3×4}^{2}  0.70 s  0.41 s  0.34 s
M_{4×5}^{2}  27.53 s  4.61 s  2.71 s
Comm_{3×3}  12.97 s  3.36 s  1.96
D_{4,4}^{4}  6.67 s  7.16 s  7.54 s
D_{4,5}^{4}  32.59 s 34.84 s 41.33 s
D_{4}^{5,4}  529.85 s 569.06 s 640.19 s
C_{5}  1.30 s  1.60 s  4.48 s
C′_{5}  4.81 s  5.98 s  48.61
C_{6}  79.28 s 1686.61 170.66 s
C_{7}  9 h 340 s  s

Remark 3.34 The only example that needs swap memory is C_{7}, but it needs substantial swap memory ( 200MB); its timings are hence quite high.

The statistics for the computations using as coefficient field ℚ. The examples D_{4,4}^{4}, D_{4,5}^{4}, D_{4}^{5,4} have not been tested in 0 characteristic since in that case all the time is used up by the numerical computations.

Name  Minimal Schreyer  CDNR
M_{3×4}^{2}  1.42 s  0.81 s  0.67 s
M_{4×5}^{2}  43.70 s  8.72 s  5.81 s
Comm_{3×3}  28.61 s  9.22 s  6.81 s
C_{5}  8.50 s 11.17 s  46.99 s
C′_{5}  39.68 s 46.91 s 1195.13 s
C_{6}  347.76 s  1223.57 s

3.6.1 Conclusions

The algorithm here proposed for the minimal resolution computations is quite efficient in comparison to the classical, syzygy module-by-syzygy module algorithm. With respect to the new algorithms, (e. g. [CDNR]), the results are mixed. There are classes of examples for which our algorithm is the best, and other for which it is not. The difference seems to be the complexity of the graded structure of the resolution, our algorithm gaining when the grading is more complex (e. g. the cyclic examples). See the description of the explicit resolutions in the next page.

Moreover, the choice of ordering is crucial for the computation of a minimal resolution. Which ordering is the best for a given example seems to depend on its class. The data show a certain consistency within classes. The relative behaviour of the algorithms is roughly invariant with respect to the change of the coefficient field from ℤ_{32003} to ℚ. Overall, the performances of the resolution algorithm presented in this paper are roughly comparable to the CoCoA resolution algorithm.

3.7 Examples resolution

Here there are the resolutions of the examples examined in the section 3.6. Except for the dense polynomial examples, the resolution are shown as matrices; The entry i, j of the matrix represents the number of generators of the n − j syzygy module in degree i, where n is the matrix number of rows. For the dense polynomial examples, due to the simplicity of the resolutions, the resolutions are shown as usual. Note that the syzygy modules in the matrix are written in the same order as in the resolution, so the last column represent the generators of the 0 syzygy module.

\begin{matrix}M_{3×4}^{2} & M_{4×5}^{2} & Comm_{3×3} \\ [ \begin{matrix}& 3 & 12 & 34 & 60 & 52 & 18 \\ 1 & . & . & . & . & . & . \\ 2 & . & . & . & . & . & 18 \\ 3 & . & . & . & . & 52 \\ 4 & . & . & . & 60 & & . \\ 5 & . & . & 24 & & . & . \\ 6 & . & . & 10 & . & . & . \\ 7 & . & 12 & . & . & . & . \\ 8 & 3 & . & & . & . & . \end{matrix} ] & [ \begin{matrix}& 6 & 20 & 65 & 132 & 120 & 40 \\ 1 & . & . & . & . & . & . \\ 2 & . & . & . & . & . & . \\ 3 & . & . & . & . & . & 40 \\ 4 & . & . & . & . & 120 & . \\ 5 & . & . & . & 132 & . & . \\ 6 & . & . & 50 & . & . & . \\ 7 & . & . & . & . & . & . \\ 8 & . & . & 15 & . & . & . \\ 9 & . & 20 & . & . & . & . \\ 10 & 6 & . & . & . & . & . \end{matrix} ] & [ \begin{matrix}& 5 & 32 & 61 & 60 & 33 & 8 \\ 1 & . & . & . & . & . & . \\ 2 & . & . & . & . & . & 8 \\ 3 & . & . & . & . & 2 & . \\ 4 & . & . & . & . & 31 & . \\ 5 & . & . & . & 32 & . & . \\ 6 & . & . & 3 & 28 & . & . \\ 7 & . & . & 58 & . & . & . \\ 8 & . & 32 & . & . & . & . \\ 9 & 4 & . & . & . & . & . \\ 10 & 1 & . & . & . & . & . \end{matrix} ] \end{matrix}

\begin{matrix}C_{5} & AC_{5} & C_{6} \\ [ \begin{matrix}& 1 & 5 & 10 & 10 & 5 \\ 1 & . & . & . & . & 1 \\ 2 & . & . & . & 1 & 1 \\ 3 & . & . & . & 1 & 1 \\ 4 & . & . & 1 & 2 & 1 \\ 5 & . & . & 1 & 2 & 1 \\ 6 & . & . & 2 & 2 & . \\ 7 & . & 1 & 2 & 1 & . \\ 8 & . & 1 & 2 & 1 & . \\ 9 & . & 1 & 1 & . & . \\ 10 & . & 1 & 1 & . & . \\ 11 & 1 & 1 & . & . & . \end{matrix} ] & [ \begin{matrix}& 1 & 5 & 10 & 10 & 5 \\ 1 & . & . & . & . & 1 \\ 2 & . & . & . & . & 1 \\ 3 & . & . & . & . & 1 \\ 4 & . & . & . & 2 & 1 \\ 5 & . & . & . & 1 & 1 \\ 6 & . & . & . & 2 & . \\ 7 & . & . & 1 & 2 & . \\ 8 & . & . & 2 & 2 & . \\ 9 & . & . & 2 & 1 & . \\ 10 & . & . & 2 & . & . \\ 11 & . & 1 & 1 & . & . \\ 12 & . & 1 & 2 & . & . \\ 13 & . & 2 & . & . & . \\ 14 & . & . & . & . & . \\ 15 & . & 1 & . & . & . \\ 16 & 1 & . & . & . & . \end{matrix} ] & [ \begin{matrix}& 2 & 12 & 30 & 41 & 34 & 18 & 6 \\ 1 & . & . & . & . & . & . & 1 \\ 2 & . & . & . & . & . & . & 1 \\ 3 & . & . & . & . & . & 1 & 1 \\ 4 & . & . & . & . & . & 1 & 1 \\ 5 & . & . & . & . & . & 2 & 1 \\ 6 & . & . & . & . & 1 & 2 & 1 \\ 7 & . & . & . & . & 1 & 3 & . \\ 8 & . & . & . & . & 2 & 3 & . \\ 9 & . & . & . & . & 4 & 2 & . \\ 10 & . & . & . & 1 & 6 & 3 & . \\ 11 & . & . & . & 4 & 11 & 1 & . \\ 12 & . & . & . & 16 & 2 & . & . \\ 13 & . & . & 10 & 1 & 2 & . & . \\ 14 & . & 2 & . & 2 & 2 & . & . \\ 15 & . & . & . & 3 & 1 & . & . \\ 16 & . & . & 1 & 5 & 2 & . & . \\ 17 & . & . & 4 & 9 & . & . & . \\ 18 & . & . & 15 & . & . & . & . \\ 19 & . & 10 & . & . & . & . & . \\ 20 & 2 & . & . & . & . & . & . \end{matrix} ] \end{matrix}

D_{4,4}^{4} : 0@ >>> R(−16)@ >>> R^{4}(−12)@ >>> R^{8}(−6)@ >>> R^{4}(−4)

D_{4,5}^{4} : 0@ >>> R(−20)@ >>> R^{4}(−15)@ >>> R^{6}(−6)@ >>> R^{4}(−5)

D_{4}^{5,4} : 0@ >>> R(−20)@ >>> R^{4}(−15)@ >>> R^{6}(−6)@ >>> R^{4}(−4)

\begin{aligned}& C_{7} \\ [ & \begin{aligned}& 2 & 17 & 65 & 124 & 126 & 72 & 26 & 7 \\ 1 & . & . & . & . & . & . & . & 1 \\ 2 & . & . & . & . & . & . & . & 1 \\ 3 & . & . & . & . & . & . & 1 & 1 \\ 4 & . & . & . & . & . & . & 1 & 1 \\ 5 & . & . & . & . & . & . & 2 & 1 \\ 6 & . & . & . & . & . & 1 & 2 & 1 \\ 7 & . & . & . & . & . & 1 & 3 & 1 \\ 8 & . & . & . & . & . & 2 & 3 & . \\ 9 & . & . & . & . & . & 3 & 3 & . \\ 10 & . & . & . & . & 1 & 4 & 3 & . \\ 11 & . & . & . & . & 1 & 5 & 4 & . \\ 12 & . & . & . & . & 2 & 8 & 3 & . \\ 13 & . & . & . & . & 4 & 34 & 1 & . \\ 14 & . & . & . & . & 67 & 3 & & . \\ 15 & . & . & . & 43 & 3 & 2 & & . \\ 16 & . & . & 8 & 7 & 3 & 2 & & . \\ 17 & . & 1 & 7 & 1 & 3 & 2 & & . \\ 18 & . & 1 & . & 1 & 4 & 3 & & . \\ 19 & . & . & . & 2 & 6 & 2 & & . \\ 20 & . & . & . & 3 & 32 & . & & . \\ 21 & . & . & . & 66 & . & . & & . \\ 22 & . & . & 43 & 1 & . & . & & . \\ 23 & . & 8 & 7 & . & . & . & & . \\ 24 & 1 & 7 & . & . & . & . & & . \\ 25 & 1 & . & . & . & . & . & & . \end{aligned} & ] \end{aligned}

72 CHAPTER 3. SYZYGIES AND RESOLUTIONS

Operations

In this chapter we discuss the algorithms for

membership problems, section 4.1;

elimination and Zariski closure, section 4.2;

homogeneization, section 4.3;

intersection, section 4.4;

transporter, section 4.5;

saturation, section 4.6;

multiple intersections and other multiple problems, section 4.7.

4.1 Membership problems

Definition 4.1 Let I be an ideal of the ring R := k[x_{1}, …, x_{n}] and f ∈ R. The question f ∈ R? is the membership problem for I and f. The membership problems for modules etc. are expressed in the same way.

Membership problems are solvable with Gröbner basis techniques.

Proposition 4.2 Let R := k[x_{1}, …, x_{n}], M ⊂ R^{r} an R module and μ ∈ TO(R^{r}). Then a form F ∈ R^{r} belongs to M if and only if NF _{μ}(F, M) = 0

Since to solve a membership problem it is in general necessary to compute a Gröbner basis, membership problems may be quite expensive.

Remark 4.3 A special case of the membership problem is the testing of the belonging of 1 to an ideal. If 1 belong to the ideal, the it is in the Gröbner basis, hence to test 1 ∈ I we can execute the Buchberger algorithm on I using any term-ordering, and stop the computations when we found a pair the reduces to 1. Since we don’t compute the whole Gröbner basis, the savings may be substantial. Since 1 ∈ I ⟺ V (I) = ∅, this test is quite useful and performed often, for example testing the belonging of a polynomial to the radical of some ideal. This method may be applied any time we know that if a polynomial belongs to an ideal it belongs to its Gröbner basis.

Proposition 4.4 Let R := k[x_{1}, …, x_{n}], I an ideal of R and f ∈ R. Then f ∈ \sqrt{I} if and only if 1 ∈ (I, tf − 1) ⊂ R[t].

4.2 Elimination and Zariski closure

Definition 4.5 Let I := f_{1}, …, f_{r} ⊂ k[x_{1}, …, x_{n}] and S := {x_{j}}_{j∈S⊂{1...n}}. Then the elimination ideal I_{S} is the ideal I ∩ k[{x_{1}, …, x_{n}} − S]

Remark 4.6 The ideal I_{S} is the ideal of the relations among the variables in S.

Theorem 4.7 Let I := f_{1}, …, f_{r} ⊂ k[x_{1}, …, x_{n}], S := {x_{j}}_{j∈S⊂{1...n}} and τ be an elimination ordering for S. Let G′_{S} be a Gröbner basis of I with respect to τ. Then

G_{S} := G_{S} ∩ k[{x_{1}, …, x_{n}} − S]

is a Gröbner basis of I_{S} with respect to τ, the elimination Gröbner basis for the variables in S.

Proof. See, for example, [CLS]. □

The computation of elimination Gröbner bases is one of the most basic steps in the effective computation of ideal/module operations, as we see in this chapter.

For ease of notation, it is handy to introduce the definition:

Definition 4.8 If S = {x_{1}, …, x_{k}}, then I_{k} := I_{S} and G_{k} := G_{S}.

Theorem 4.9 Let I be an ideal of R := k[x_{1}, …, x_{n}]. Let V := V (I ⊂ k^{n}) and π_{k} : k^{n}@ >>> k^{n−k} the projection on the last n − k components. Let I_{k} be the k^{th} elimination ideal of I. Then V (I_{k}) is the Zariski closure of π_{k}(V)

Proof. See, for example, [CLS]. □

The Hilbert-Driven algorithm is especially useful in elimination problems, since in several interesting cases for some term-ordering the initial system of generators is already a Gröbner basis. This is the case for

• the computation of the equation of a curve starting from the parameterization of the curve;

• the computation of the equation of a polynomial algebra;

• the computation of the Rees algebra of an ideal.

and several other cases of interest. For some example, see 2.6.2.

Let I be an ideal of the ring R := k[x_{1}, …, x_{n}] graded by the system of weights w. We want to compute the elimination ideal I_{k}. If we know the Hilbert function of R/I, we may use the Hilbert-Driven algorithm. If we know the Hilbert function of R/I_{k}, we may use a variant of the Hilbert-Driven algorithm that eliminates only the pairs in k[x_{k−1}, …, x_{n}]. If we know both Hilbert functions, we may use them both at the same time. In the discussion on transporters and saturations we have some example of this situation. Here is the code for this double Hilbert-Driven algorithm. The double Bi-Hilbert-Driven algorithm is left to the reader. All considerations are the same as in the discussion of the Hilbert-Driven algorithm, ref. 2.5.

Let G_{k} := G ∩ k[x_{k+1}, …, x_{n}].

Input G := {g_{1}, …, g_{r}} ⊆ k[x], with g_{i} w homogeneous τ ∈ TO(R) such that τ = σ_{x_{1},... ,x_{k}} × σx_{k+1}, …, x_{n} w, system of weights for R

⟨(G)⟩^{w}
⟨(G_{k})⟩^{w}

Output the reduced Gröbner basis of G_{k} with respect to τ. begin

L := generates the initial pairs form G;

d := ∂_{w}(in(⟨Lt_{τ} (G)⟩^{w} − ⟨(G)⟩^{w}));

d′ := ∂_{w}(in(⟨Lt_{τ} (G_{k})⟩^{w} − ⟨(G_{k})⟩^{w}));

Kill the pairs in L whose w degree is lesser than d;

Kill the pairs in L that belong to L^{k} and whose w degree is lesser than d′; while L ≠ ∅ do begin

choose (g_{i}, g_{j}) ∈ L s.t. d = ∂_{w}(SPoly (g_{i}, g_{j})); L:=L − {(g_{i}, g_{j})}; f := NF _{τ} (SPoly (g_{i}, g_{j}), F); if f ≠ 0 then F′:=F′ ∪ {h}; if d ≠ min_{w}{∂_{w}(SPoly (g_{i}, g_{j})) | (g_{i}, g_{j}) ∈ L} then

begin G′:=Interreduce(G′); L,G:=Upgrade^{w,d}(L, G′, G); L′:=∅; d := in(⟨Lt_{τ} (G)⟩^{w} − ⟨(G)⟩^{w}); d′ := ∂_{w}(in(⟨Lt_{τ} (G_{k})⟩^{w} − ⟨(G_{k})⟩^{w}));

endif; Kill the pairs in L whose w degree is w lesser than d; Kill the pairs in L that belong to L^{k} and whose w degree is lesser than d′;

endwhile;

return G; end.

This double Hilbert-Driven algorithm has several variants, depending on the knowledge on the input polynomials. We may know the Hilbert Function of the input ideal with respect to some system of weights w, and the Hilbert Function of the elimination ideal with respect to some other system of weights u, and so on and so forth. The variants are all quite easy to develop from the algorithms we have shown.

4.3 Homogeneization

Definition 4.10 Let R := k[x_{1}, …, x_{n}], h_{1}, …, h_{k} be new variables and I be an ideal of R. Then the couple (I^{h}, w), where I^{h} ⊂ R[h] and w is a system of weights on R[h] is an homogeneization of I if

a) I^{h} is w homogeneous;

b) {f(x_{1}, …, x_{n}, 1, …, 1)|f ∈ I^{h}} ⊂ R generates I.

Theorem 4.11 Let R := k[x_{1}, …, x_{n}], I be an ideal of R and (I^{h}, w) be an homogeneization of I. Let τ ∈ TO(R) be compatible with w_{|R} and G be the Gröbner basis of I with respect to τ. Then the homogeneization of G with respect to w is a Gröbner basis for I^{h} with respect to a term-ordering τ′ compatible with w.

Proof. The proof for type one systems of weights is standard, see e. g. [CLS]. The generalization to higher type systems of weights is immediate. □

Remark 4.12 Theorem 4.11 gives an immediate algorithm for the computation of I^{h,w}: first compute the Gröbner basis for a term-ordering compatible with w, the homogenize it with respect to w.

Proposition 4.13 Let R := k[x_{1}, …, x_{n}] and I be an ideal of R. If (I^{h}, w) is an homogeneization of I and τ ∈ TO(R[h]) is compatible with w, then the de-homogeneization of GB(I^{h}, τ) gives a Gröbner basis of I with respect to τ_{R}.

Proof. Immediate. □

Remark 4.14 Theorem 4.11 allows us to compute the Gröbner basis of an homogeneization of a nonhomogeneous ideal I. In several instances we have a non-homogeneous ideal whose generators, if homogenized would give a simpler Gröbner basis, or allow to use easily the Hilbert-Driven algorithm. In these cases, homogeneizing the generators may be worthwhile. We will see some example in the use of the Hilbert function in intersections, transporters and saturations.

Proposition 4.15 Let R := k[x_{1}, …, x_{n}], I := (f_{1}, …, f_{l}) be an ideal of R and τ ∈ TO(R). Let h be new variables, w be a system of weights for R[h] and {f_{1}^{h h h,w}, …, f_{l}^{h h h,w}} be homogeneizations of f_{1}, …, f_{l}. Then a Gröbner basis of (f_{1}^{h h h,w}, …, f_{l}^{h h h,w}) with respect to an elimination ordering for x is a Gröbner basis for I if we substitute the variables h with 1, …, 1. Moreover, in the Buchberger algorithm, if it appears a polynomial whose leading term doesn’t have powers of the x, we have that I = (1).

Proof. Since we are adding variables that we be then valued as 1, the Gröbner basis of (f_{1}^{h h h,w}, …, f_{l}^{h h h,w}) after the valuation generates I. If a polynomial whose leading term is a pure power of h appears in the Gröbner basis, then after the valuation I = (1). Since we are using an elimination term-ordering for the x variables, the Gröbner basis is still a Gröbner basis after the valuation. □

Remark 4.16 Proposition 4.15 allows us to compute Gröbner basis of non-homogeneous ideals using the homogeneous algorithm (and maybe the Hilbert-Driven or Bi-Hilbert-Driven algorithms). The advantages are almost always offset by the increased complexity of the computation due to the introduction of additional variables (hence, components at infinity of the variety).

4.4 Intersection

Intersection is another of the most basic steps. Here we describe the two classical algorithms to compute submodule intersections, together with some less known variants.

The tag variable algorithm

The algorithm relies on the

Theorem 4.17 Let R := k[x_{1}, …, x_{n}] and N, H be submodules of a free R-module M. Let t be a new indeterminate, and consider the R[t] modules M_{t}, N_{t}, H_{t}, M_{t} = M ⊗_{R} R[t], etc.; a presentation of N, H lifts to a presentation of N_{t}, H_{t}. Then

(tN_{t} + (1 + t)H_{t}) ∩ M = N ∩ H

Proof. An (incomplete) proof is the following: consider γ = tα + (1 + t)β, and assume γ ∈ M, α ∈ N, β ∈ H. Since γ = β +t(α+β), and t does not appear in γ, this means that α+β = 0 (hence α = −β ∈ H) and γ = β = −α ∈ N ∩ H. The converse inclusion is straightforward. □

The proof is incomplete, since we cannot a priori assume α ∈ N, but only α ∈ N_{t}. The proof can anyway be adjusted (induction on the degree of t in α; the proof above is the level 0 of induction). The present “proof” proves something else that will be revealed in a next section.

This algorithm is hence a special case of elimination, and hence can be performed by the Buchberger algorithm with respect to an elimination term-ordering (see [Sp], [GTZ], etc.).

The syzygy algorithm

The syzygy algorithm is based on the following theorem :

Theorem 4.18 Let R := k[x_{1}, …, x_{n}], N, H ⊂ R^{r} be R modules and the sequences

R^{r} → N → 0 R^{s} → H → 0

be exact; hence the induced map

R^{r+s} → N + H → 0

is exact. Let

R^{l} →^{ϕ} R^{r+s} →^{ψ} N + H → 0

be an exact extension. Then let π : R^{r+s} → R^{r}, ι : R^{r} → R^{r+s} be the canonical projection and injection. Then

ψιπϕ(R^{l}) = N ∩ H

Proof. The proof is almost immediate, see [E]. To find explicitly these relations, see [Sh], [MM], [BW], or a subsequent section. □

Hence to find the intersection N ∩ H one can find the relations between the generators of N and H (e. g. the map ϕ).

Remark 4.19 Let R := k[x_{1}, …, x_{n}] and H = (h_{i}) and N = (n_{j}) be submodules of the R module M. The syzygy algorithm to compute the intersection between H and L computes the relations between the (h_{i}, n_{j}) and then for each generator γ of the module of relations takes the scalar product ⟨γ, (h_{i}, 0)⟩.

A third algorithm

In [E], Exercise 15.42, a third algorithm is reported (see also [BGS] if you can): compute the first coordinate of the kernel of the map defined by the matrix

( \begin{matrix}1 & f_{1} & … & f_{s} & 0 & … & 0 \\ 1 & 0 & … & 0 & g_{1} & … & g_{t} \end{matrix} )

where (f_{i}) = I and (g_{j}) = J. The proof of the correctness of the algorithm is immediate. The algorithm allows us obvious extensions to the case of submodules of a free module M (the map being in that case a map to M ⊕ M, and the initial 1 of each line being interpreted as a square matrix).

These algorithms have variants for multiple intersections. Assume that we want to compute I_{1}∩⋯∩I_{n}. The tag variable algorithm adds variables t_{1}, …, t_{n}, with the relation t_{1} + ⋯ + t_{n} + 1, and eliminates the t_{i} from t_{1}I_{1} + ⋯ + t_{n}I_{n}. The third algorithm adds further lines with the generators of the other ideals.

4.4.1 Intersections in practice

We want to show that the syzygy algorithm, the tag variable algorithm and the third algorithm are essentially the same.

In the syzygy algorithm, assume that the syzygies are only used to compute the intersection, and then discarded. We show how to minimize the computations and the storage.

To avoid the final computation, one can simply:

a) avoid considering the components of the syzygies that correspond to the n_{j}, since they are anyway discarded at the end.

b) perform at the very start the scalar product that is needed at the end. This consists in applying the distributive property of the scalar product.

Item a) is obviously advantageous, since we avoid to perform computations whose result is at the end multiplied by zero; the convenience of b) might be questioned —we consider a polynomial instead of a vector of polynomials, but the single polynomial might be more complicated that the vector— but in practice this is not the case.

In matrix form, the original algorithm would compute the Gröbner basis of the matrix

( \begin{matrix}f_{1} & … & f_{s} & g_{1} & … & g_{r} \\ 1 & … & 0 & 0 & … & 0 \\ ⋮ & ... & ⋮ & ⋮ & ... & ⋮ \\ 0 & … & 1 & 0 & … & 0 \\ 0 & … & 0 & 1 & … & 0 \\ ⋮ & ... & ⋮ & ⋮ & ... & ⋮ \\ 0 & … & 0 & 0 & … & 1 \end{matrix} )

while after improvement a) we have to compute the Gröbner basis of the matrix

( \begin{matrix}f_{1} & … & f_{s} & g_{1} & … & g_{r} \\ 0 & … & 0 & 1 & … & 0 \\ ⋮ & ... & ⋮ & ⋮ & ... & ⋮ \\ 0 & … & 0 & 0 & … & 1 \end{matrix} )

and after improvement b) we compute just the Gröbner basis of the two-rows matrix

( \begin{matrix}f_{1} & … & f_{s} & g_{1} & … & g_{r} \\ 0 & … & 0 & g_{1} & … & g_{r} \end{matrix} )

I. e.the Gröbner basis of

{(t + 1)f_{1}, …, (t + 1)f_{s}, t g_{1}, …, t g_{r}} = (t + 1)H + tN ⊆ t k[x] ⊕ k[x]

The usual tag variable intersection algorithm do the same computation, but the tag variable t is a ring variable (ring setting). But indeed, looking closely at the tag variable intersection algorithm, we can improve it: if the tag variable t is considered to be a “module variable”, (module setting) in the sense of a preceding section, the algorithm still computes the intersection (the incomplete proof given in a previous section now is correct!) and the algorithm is simpler: Since we are using the module Buchberger algorithm, the pairs (f′, f′′) such that Lt(f′) contains t and Lt(f′′) are not considered.

We have so reconciled the two algorithms. Both can be improved to become coincident. Indeed,

in the tag variable algorithm, if we are not interested to have an answer that is Gröbner, we may discard all pairs of elements that do not contain the tag variable t.

In the syzygy algorithm, if we want to have an answer that is Gröbner, we have to perform a Buchberger algorithm on the result.

Remark 4.20 There is still a difference between the two, in the timings of the different phases: if we first completely compute syzygies, and then a Gröbner basis of the intersection, this can be seen as interrupting the simplification phase of the Buchberger algorithm and resuming it later. Whether this is advantageous or not is not yet clear, and further experiments might be needed to settle the issue.

Just a few comments on the “third algorithm”. We have to compute the kernel of a map, e. g. the syzygies of the columns of a matrix, then take the first component of those syzygies. We can hence avoid to compute these components, as we have proposed for the first improvement of the syzygy algorithm. Hence we have to compute the Gröbner basis of the module generated by the columns of the matrix

( \begin{matrix}1 & f_{1} & … & f_{s} & 0 & … & 0 \\ 1 & 0 & … & 0 & g_{1} & … & g_{t} \\ 1 & 0 & … & 0 & 0 & … & 0 \end{matrix} )

To compute the module Gröbner basis, we multiply to the left by (t, s, 1), t, s being module variables; then eliminate t and s. The first column is t + s + 1, the others are generators of tI and sJ respectively; this means that we are performing the multiple intersection tag-variable algorithm.

4.4.2 An interpretation

The tag variable algorithm, in the module setting, has an interpretation that provides another proof of the correctness of the algorithm.

Remark 4.21 let A be a ring, then consider A⊕A as A-module and its submodules M_{1} = {(a, a) | a ∈ I}, M_{2} = {(b, 0) | b ∈ J} and M = M_{1} + M_{2}. Then

M ∩ (0 ⊕ A) = 0 ⊕ (I ∪ J)

and this is exactly what the tag variable algorithm (module setting) computes.

4.4.3 Useless pair avoidance

Assume that we have to compute the intersection of two ideals I, J ⊂ R := k[x_{1}, …, x_{n}] of which we have a Gröbner basis, say F = {f_{i}} and G = {g_{j}}.

When computing a Gröbner basis with input H = tF ∪ (t + 1)G we have to consider the critical pairs of elements of H. But we can remark that the pairs (tf_{i}, tf_{h}) will surely be simplified to 0 by elements of tF, exactly in the same way as (f_{i}, f_{h}) is simplified to 0 by elements of F. In the same way the pairs ((t + 1)g_{j}, (t + 1)g_{h}) will be simplified to 0 by elements of (t + 1)G.

Thus an optimized implementation of intersection can take advantage of this remark. The same remark can be useful for the syzygy algorithm, if we know the syzygies of F and G; but apparently this is more difficult and of less use.

Remark 4.22 Using either algorithm, if we don’t need a Gröbner basis of the intersection module, we may discard a pair if the leading terms of both its element that don’t contain the variable t.

We show now that, although it seems completely equivalent to the tag variable algorithm, the “third algorithm” does not allow the aforementioned optimization.

Consider the module generated freely by t, s, 1 (with an ordering eliminating t and s, t > s) and the submodule M generated by tf_{i}, sg_{j}, t+s+1; to compute a Gröbner basis of M we can avoid all the critical pairs between elements of tf_{i}, and all the critical pairs between the sg_{j}; these elements moreover do not build critical pairs since they refer to different components; we have to start computing the critical pairs between the tf_{i} and t + s + 1. Each of these pairs generates an element −(s + 1)f_{i}, hence we are again to the standard form of the tag-variable module algorithm. But in this preliminary seemingly innocuous step we have lost the information that the pairs ((s + 1)f_{i}, (s + 1)f_{j}) go to 0, e. g. the information that we start from a Gröbner basis of I.

If we start from a set of generators that are not a Gröbner basis the drawback is similar, since we first compute a Gröbner basis of tI just to discard the knowledge that it is a Gröbner basis recomputing it divided by t and multiplied by (s + 1) instead.

Proposition 4.23 Let R := k[x_{1}, …, x_{n}], and let M, N ⊂ R^{r} be R modules. Then, using the matrix notation for the modules,

the Gröbner basis of [ \begin{matrix}M & N \\ 0 & N \end{matrix} ] with respect to μ is [ \begin{matrix}GB(M + N, μ_{|R^{r}}) & 0 \\ F & GB(M ∩ N, μ_{|R^{r}}) \end{matrix} ]

if μ is a block module term-ordering on R^{r} ⊕ R^{r} for which the first component is the biggest.

Proof. The first component of the Gröbner basis is GB(M + N, μ_{|R^{r}}) since μ is a block ordering for the first component. That the second component of the Gröbner basis is GB(M ∩ N, μ_{|R^{r}}) follows from the proof of the tag variable intersection algorithm. □

Remark 4.24 If I is an ideal of R := k[x_{1}, …, x_{n}], t is a new variable and τ is an elimination ordering for t on R[t], then GB((I, (1 + t)I), τ) = GB(I, τ_{|R}). If t is a module variable, then

GB((I, (1 + t)J), τ) = [\begin{matrix}GB(I + J, τ_{|R}) & 0 \\ F & GB(I ∩ J, τ_{|R}) \end{matrix}]

Remark 4.25 Using the tag variable module algorithm, the computation of M ∩ N has as side effect the computation of a Gröbner basis of M + N.

4.4.4 Hilbert-Driven intersection

If the ideals I and J are homogeneous with respect to a system of weights w, then the tag variable intersection algorithms may be easily adapted to keep the homogeneity. It is only necessary to give to the tag variable a suitable weight.

Proposition 4.26 Let R := k[x_{1}, …, x_{n}] and I, J ⊂ R be w-graded ideals. Let t_{1}, t_{2} be new variables. Then

1. the ideal (t_{1}I, (t_{1} + t_{2})J) ⊂ R[t_{1}, t_{2}] is graded with respect to the system of weights

u := [ [w] | \begin{matrix}1 & 1 \\ ⋮ & ⋮ \\ 1 & 1 \end{matrix} ]

2. Let τ be a term-ordering on R[t_{1}, t_{2}] such that

a. it is an elimination ordering for t_{1}.

b. the variable t_{2} is block-lesser than the other variables.

Then (GB(t_{1}I, (t_{1} + t_{2})J, τ))_{|t_{2}=1} ∩ R = I ∩ J.

Proof. Immediate. □

Proposition 4.27 Let R := k[x_{1}, …, x_{n}] and M, N ⊂ R^{r} be w graded R modules. Let t_{1}, t_{2} be a new module variables. Then

1. The module (t_{1}M, (t_{1} + t_{2})N) ⊂ t_{1} R^{r} ⊕ t_{2} R^{r} is graded with respect to the system of weights

u := [ [w] | \begin{matrix}1 & 1 \\ ⋮ & ⋮ \\ 1 & 1 \end{matrix} ]

2. the module (t_{1}M, (t_{1} + t_{2})N) is w graded isomorphic to the module (tM, (t + 1)N)) ⊂ t R^{r} ⊕ R^{r}.

Proof. Immediate from proposition 4.27. □

Corollary 4.28 If M, N are w graded, then

H_{(t_{1}M+(t_{1}+t_{2})N)}^{u} = H_{M+N}^{w} + H_{M∩N}^{w} = H_{M⊕N}^{w}

Proof. Follows immediately from the exactness of the sequence in proposition 1.111. □

Remark 4.29 If we have two ideals I and J, we may consider them as modules and use the tag-variable algorithm with module tag variables. We see in the examples of section 4.4.5 that this trick may be useful. If we happen to know the Hilbert function of M +N or M ∩N we can skip even more pairs, see subsection 4.2.

The use of the Hilbert-Driven or Bi-Hilbert-Driven algorithm is then immediate for the intersection of graded ideals/modules. If M or N are not homogeneous, then they can be homogenized, see section 4.3. This is usually a good idea since the costs for the computation of the Gröbner bases of M and N are usually quite small in comparison to the cost for the computation of M ∩ N.

4.4.5 Intersection statistics

There are no standard benchmarks for intersection. To have examples coming from some practical problem, we intersect the ideals produced by the pure dimensional ideal decomposition algorithm of chapter 5. We choose four of the examples introduced in section 5.5. In every case, the ideal is homogenized, and then the decomposition algorithm is executed. The lists have

Gerdt 5 ideals.

T2 2 ideals.

Butcher 19 ideals.

Oaku 6 ideals.

The ideals are then intersected.

Headings : HMod is the Hilbert-Driven module algorithm, Mod is the module algorithm, HRing is the Hilbert-Driven ring algorithm, Ring is the ring algorithm and 3 is the “third” algorithm. The timings are for the computation of the intersection of all the ideals in the lists using the naive multiple intersection algorithm.

Name HMod Mod HRing Ring  3
Gerdt  4.70 s 12.70 s 5.30 s 10.10 s 13.00 s
T2 0.3 s 0.70 s 0.2 s 0.80 s 0.3 s
Butcher 10.80 s 22.80 s 13.10 s 15.60 s 24.10 s
Oaku  0.50 s 0.50 s 0.70 s 0.50 s 0.40 s

Here there are some other tests : we get an ideal each from the decomposition of the ideals Gerdt, T2, Butcher and Oaku. Then we intersect them. We see the data intersection by intersection.

Name  HMod  Mod HRing  Ring  3
G ∩ T  0.50 s  2.30 s 0.50 s  1.60 s  2.20 s
G ∩ T ∩ B  6.20 s  8.30 s  6.40s  7.60 s  8.30 s
G ∩ T ∩ B ∩ O 70.80 s 164.20 s 190.00s 245.60 s 1175.80 s

We note that the tag variable module Hilbert-driven algorithm is clearly the best.

Some remarks on the computations :

1. in every case, it is slightly better to start the intersection algorithms with the Gröbner bases as the system of generators of the ideals.

2. The algorithms compute different Gröbner bases, but the Gröbner bases differ very little in the number of polynomials. Usually the ring algorithm basis has one or two less polynomials than the module algorithm.

3. The computation of the Gröbner bases of the ideals has in every instance negligible costs with respect to the costs of the intersection algorithms.

4. The timings are from a prototypical high-level implementation of the algorithms, hence its only interest is for an evaluation of the algorithms.

4.5 Transporter

The algorithms for the computation of the transporter have apparently more variety than the algorithms for the intersection. These algorithms are not much different for the ideal and the module case, so we describe just the ideal case, e. g. we compute I : J, I = (f_{1}, …, f_{n}), J = (g_{1}, …, g_{m}), where I, J are ideals of R := k[x_{1}, …, x_{n}].

We can classify these algorithms in three categories:

1. Algorithms when J is homogeneous and generated by the last variable in DegRevLex ordering:

(a) Special remark by Bayer.

2. Algorithms when J is principal

(a) Divided intersection algorithm.

(b) Tag variable algorithm.

(c) Syzygy algorithm.

(d) Reduction to the special remark by Bayer (homogeneous ideals only).

3. Algorithms when J has many generators

(a) Through intersection.

(b) Through random elements.

(c) Through a “special generic element”.

We want to show that, notwithstanding the number of these algorithms, they are just the same algorithm with small variations.

4.5.1 Bayer special remark

Assuming that I is homogeneous and J is generated by the last variable x_{r} in DegRevLex ordering, the ideal I : J is obtained dividing by the last variable all the elements of a Gröbner basis of I whose head is divisible by x_{r} (by the definition of DegRevLex, if f is homogeneous and its head is divisible by x_{r} then f itself is divisible by x_{r}).

4.5.2 Principal quotient

Let I := (f_{1}, …, f_{k}) and J := (g).

Divided intersection algorithm I : J is obtained dividing by g all the elements of I ∩ (g).

Tag variable module algorithm I : J is obtained eliminating the additional (module) variable t from tI + (tg + 1). This algorithm allows us a variant: eliminate t from tI + I + (tg + 1).

Syzygy algorithm Consider the syzygies of (g, f_{1}, …, f_{n}) and consider the first component.

Reduction to the special remark by Bayer If the ideals I and J := (g) are homogeneous, we add a new variable y of degree deg(g), and then we compute (I, g − y) : (y) with the Bayer remark algorithm and then eliminate y from the result.

Proof. The proofs of these facts are all standard, see e. g. [CLS], except for the Tag variable module algorithm. We have to prove that I : (g) = (tI, tg + 1) ∩ R. But (tI, tg + 1) ∩ R = {t ∑ h_{i}f_{i} + h(tg + 1) | h_{i}, h ∈ R} ∩ R = {h ∈ R | hg = − ∑ h_{i}f_{i}} = {h ∈ R | hg ∈ I} = I : (g) □

The divided intersection algorithm is equal to the tag variable algorithm or to the syzygy algorithm, depending on the algorithm of your choice for the intersection, with the only difference that one component of all the polynomials is multiplied by g before the algorithm and divided by g at the end. This makes all the computations slower, but the algorithm does not change. We have already seen that the intersection algorithms are the same, hence the three algorithms are substantially the same.

The syzygy algorithm can of course be improved avoiding to compute the components of the syzygies that are discarded at the end; we have hence to compute the Gröbner basis of

( \begin{matrix}f_{1} & … & f_{n} & g \\ 0 & … & 0 & 1 \end{matrix} )

and is hence identical to the tag variable algorithm (if t is taken, as it should, as module variable).

The variant of the tag variables algorithm is convenient if we start from a Gröbner basis: the addition of the generators of I does not require the addition of further critical pairs, and can avoid many computations. For example, when I : (g) = I, adding initially a Gröbner basis f_{i} of I avoids at the end to prove that this same set f_{i} is a Gröbner basis.

Proposition 4.30 Let R := k[x_{1}, …, x_{n}], I be an ideal of R and g ∈ R. Then, using the matrix notation for the modules,

the Gröbner basis of [ \begin{matrix}I & g \\ 0 & 1 \end{matrix} ] with respect to μ is [ \begin{matrix}GB((I, g), μ_{|R}) & 0 \\ F & GB(I : (g), μ_{|R}) \end{matrix} ]

if μ is a block module term-ordering on R ⊕ R for which the first component is the biggest.

Proof. The first component of the Gröbner basis is GB(I, g) since the μ is an elimination ordering for the first component. That the second component of the Gröbner basis is GB(I : (g)) follows from the proof of the tag variable module algorithm. □

Remark 4.31 The computation of I : (g) with the tag variable module algorithm has as side effect the computation of a Gröbner basis of (I, g); this may be quite useful, see chapter 5. If we happen to know the Hilbert function of (I, g) or I : (g), we have the same possibilities as in the Hilbert-Driven intersection algorithm.

4.5.3 Principal quotient - graded case

If the ideals I and J are homogeneous with respect to a system of weights w, then the transporter algorithms may be easily adapted to keep the homogeneity. It is only necessary to give to the tag variables suitable weights.

For the divided intersection algorithm, follow section 4.4.4. For the syzygy algorithm, the Hilbert-Driven algorithm may be used forthwith. The tag variable algorithm has to be treated with a bit more care.

Proposition 4.32 Let R := k[x_{1}, …, x_{n}] be graded by the system of weights w, I be a w homogeneous ideal of R and g ∈ R w homogeneous. Let t_{1}, t_{2} be new module variables. Then

1. The module (t_{1}I, t_{1}g + t_{2}^{∂_{w}(g)+1}) ⊂ t_{1} R ⊕ t_{2} R is graded with respect to the system of weights

u := [ [w w w] | \begin{matrix}1 & 1 \\ ⋮ & ⋮ \\ 1 & 1 \end{matrix} ]

2. If τ is a term-ordering on R[t_{1}, t_{2}] fulfilling the conditions of proposition 4.26, 2. Then

(GB(t_{1}I, t_{1}g + t_{2}^{∂_{w}(g)+1}, τ))_{|t_{2}=1} ∩ R = I ∩ J

Proof. Immediate from 4.30. □

Corollary 4.33 With the notation of proposition 4.30 we have

H_{(t_{1}I,(t_{1}g+t_{2}^{∂w(g)+1}))}^{u} = H_{(I,g)}^{w} + H_{I:(g)}^{w} = H_{I}^{w}

Proof. Follows immediately from proposition 4.30 and formula 1.110. □

Remark 4.34 In proposition 4.32 we may use more sophisticated system of weights to have a higher type. For example, the system of weights

u := [ \begin{aligned}& [w w w] \\ 0 & ⋯ & 0 \end{aligned}  | \begin{matrix}1 & 1 \\ ⋮ & ⋮ \\ 1 & 1 \\ ∂_{w}(g) + 1 & 1 \end{matrix} ]

is such that the module (t_{1}I, t_{1}g + t_{2}^{∂_{w}(g)+1}) is u homogeneous.

Proposition 4.32 allows us to use the Hilbert-driven techniques in the transporter algorithm, graded case. As in the intersection algorithm, homogeneization of the input is quite useful in non homogeneous cases.

4.5.4 Bayer’s remark algorithms

The “special remark by Bayer” algorithm just describes what happens when performing the tag variable algorithm in that special situation; if we use the Hilbert-driven Buchberger algorithm; we assume that f_{i} is already a Gröbner basis. We multiply all the f_{i} by t, add the equation tx_{r} − 1, then we compute the Gröbner basis; this computation, using the fact that the input is Gröbner, consists in:

1. substitute tx_{r} with 1 in all the polynomials having tx_{r} in the head (S-polynomials between tf_{i} and tx_{r} − 1 when x_{r} | Lpp(f_{i})).

2. multiply by x_{r} all the polynomials not having x_{r} in the head, then substitute tx_{r} with 1 (Spolynomials between tf_{i} and tx_{r} − 1 when x_{r} ∤ Lpp(f_{i})); this means, put in the result all the polynomials f_{i} not divisible by x_{r} unchanged.

3. perform a Buchberger algorithm on the polynomials not having t in the head, just to discover that they form a Gröbner basis.

Just remark that this last step is avoided using the Hilbert function: we already know that no further useful pair exists. The first step is exactly what is done in the “special remark” algorithm, and the second just retrieves f_{i} first multiplying it by t, then multiplying it by x_{r}, then dividing it by tx_{r}. Of course, this algorithm is very convenient if we are in this case.

The “reduction to the special remark” just adds a variable to have a simple computation, then eliminates it; but of course requires two Gröbner basis computations for these two steps. This is just an indirect way to perform the tag variable algorithm, through an intermediate computation with a different ordering. Whether this is convenient or not is matter of thorough experimentation.

Remark 4.35 If g is not homogeneous, and I is homogeneous, we can either homogenize g or split g into its homogeneous components g_{i}, and divide by the ideal defined by the g_{i}.

4.5.5 Non principal quotient

Reduction to principal through intersection Use the fact that I : (g_{1}, …, g_{m}) = (I : g_{1}) ∩ ⋯ ∩ (I : g_{m}). A shortcut is possible: if we realize that ((I : g_{1}) ∩ ⋯ ∩ (I : g_{i−1}))g_{i} ⊆ I we can skip (I : g_{i}) in the intersection. Note that the check K ⊂ (I : g_{i}) may be performed testing if g_{k}K ⊂ I, see subsection 4.7.

Reduction to principal through random elements Compute I_{b} = I : (b) where b is a (random) element of J; if I_{b}J ⊆ I then I_{b} = I : J. The point is that if b is “generic” (whatever this means) then I_{b} is indeed I : J, and the result can be checked: if I_{b}J ⊆ I then I_{b} = I : J, since in any case I_{b} ⊇ I : J.

Reduction to principal through a “special generic element” Add a new variable y, and consider b = g_{1} + yg_{2} + ⋯ + y^{m−1}g_{m}; then I : (b) is generated by elements that do not contain y, and these generate I : J. The spirit of the algorithm is that b is sufficiently “generic” to make the previous algorithm work.

Proof. The proof of the first two facts are immediate. For the third, We have to prove that I : (g_{1}, …, g_{k}) = I : (g_{1}y + ⋯ + g_{k}y^{k}). But I : (g_{1}y + ⋯ + g_{k}y^{k}) = {h ∈ R | h(g_{1}y + ⋯ + g_{k}y^{k}) ∈ R} = {h ∈ R | hg_{i} ∈ I} = {h ∈ R | hJ ⊂ I} = I : J. The proof holds if y is a module variable. □

Now we are left with the case in which J has more than one element. There are three algorithms to consider; one of them (reduction to principal through a random element) is not easy to analyze, just because of the randomness, but can be considered a variant of the “reduction to principal through intersection”: b is added as the first generator, and after computing I : (b) we check that the other intersections are not needed (and if not we restart with another random element).

The reduction to principal through a random element is not easy algorithm to analyze, just because of the randomness, but it can be considered a variant of the “reduction to principal through intersection” algorithm: b is added as the first generator, and after computing I : (b) we check that the other intersections are not needed (and if not we restart with another random element). The “reduction to principal through a ‘special generic’ element” algorithm is on one side a form of “reduction to principal through a random element” algorithm in which the element b := g_{1} + yg_{2} + ⋯ + y^{m−1}g_{m} is proved to be sufficiently random. On the other side we will see that this algorithm has a lot of relations with the “reduction to principal through intersection” algorithm.

To understand it, first modify the algorithm considering the algorithm not in the ring k[X, y] but in the free k[x]-module M = k[x, y]/(y^{m}). Instead of I consider I ⊗ M (generated by the f_{i} ⊗ y^{j}), and divide it by the element b = g_{1} + yg_{2} + ⋯ + y^{m−1}g_{m}. This means considering the Gröbner basis of the ideal generated by the columns of the matrix

( \begin{matrix}f_{1} & … & f_{n} & 0 & … & 0 & … & 0 & … & 0 & g_{m} \\ 0 & … & 0 & f_{1} & … & f_{n} & … & 0 & … & 0 & g_{m−1} \\ ⋮ & ⋮ & ⋮ & ⋮ & ⋮ & ⋮ & ... & ⋮ & ⋮ & ⋮ & ⋮ \\ 0 & … & 0 & 0 & … & 0 & … & f_{1} & … & f_{n} & g_{1} \\ 0 & … & 0 & 0 & … & 0 & … & 0 & … & 0 & 1 \end{matrix} )

with respect to an ordering eliminating all the components except the last one.

Computing instead with the “reduction to principal through intersection” we have first to compute several I : (g_{i}) e.g. through matrices

( \begin{matrix}f_{1} & … & f_{n} & g_{m} \\ 0 & … & 0 & 1 \end{matrix} )

then compute the intersection e.g. through the multivariate form of the “third algorithm”. Combining all the computations in one, we have to consider the matrix

( \begin{matrix}f_{1} & … & f_{n} & 0 & … & 0 & … & 0 & … & 0 & g_{m} & 0 & 0 & … & 0 & 0 \\ 0 & … & 0 & 0 & … & 0 & … & 0 & … & 0 & 1 & 0 & 0 & … & 0 & 1 \\ 0 & … & 0 & f_{1} & … & f_{n} & … & 0 & … & 0 & 0 & g_{m−1} & 0 & … & 0 & 0 \\ 0 & … & 0 & 0 & … & 0 & … & 0 & … & 0 & 0 & 1 & 0 & … & 0 & 1 \\ ⋮ & ⋮ & ⋮ & ⋮ & ⋮ & ⋮ & ... & ⋮ & ⋮ & ⋮ & ⋮ & ⋮ & ⋮ & ... & ⋮ & ⋮ \\ 0 & … & 0 & 0 & … & 0 & … & f_{1} & … & f_{n} & 0 & 0 & 0 & … & g_{1} & 0 \\ 0 & … & 0 & 0 & … & 0 & … & 0 & … & 0 & 0 & 0 & 0 & … & 1 & 1 \\ 0 & … & 0 & 0 & … & 0 & … & 0 & … & 0 & 0 & 0 & 0 & … & 0 & 1 \end{matrix} )

and it is easy to pass from the one to the other.

From the description it is not easy to see which algorithm should be preferred; there are different issues:

• Is it more convenient to use the module or the ring algorithm for the “special generic element” algorithm? While a naive implementation would require a recomputation of the Gröbner basis of I for each component, this of course could be done once and for all. It is however clear that duplications in the intermediate results remain, unless more sophisticated tricks are used. On the other side, for the module algorithm the computation is bounded in degree < r in y (but this can also be obtained adding the generator y^{r} in the ring case).

• Is it more convenient to collect the results of the different I : (g_{j}) then intersect them, or to compute the Gröbner basis of the big matrix?

• What is the difference in the practical computation between the smaller and the larger matrix?

• What is the influence of the possibility to use the Hilbert-driven algorithm?

Our guess is that the possibility of using the Hilbert-driven algorithms overwhelms all the possible advantages of the other variants. But this has to be proved in practice.

4.5.6 Transporter statistics

As in the intersection situation, there are no standard benchmarks for transporter. Here there are some examples. Gerdt and Gerdt’ come from the example Gerdt of chapter 5. C_{6} and C′_{6} are slight modification of the cyclic 6 ideal. We have tested the ”reduction to the Bayer remark” Hilbert-driven algorithm and the tag variable Hilbert-driven module algorithm for the principal quotient case. Headings: Bayer gives the timings for the Hilbert-driven reduction to Bayer remark algorithms, while Htr gives the timings for the tag-variable Hilbert-driven module algorithm.

Name Bayer HTr
Gerdt 11.7 s 14.9 s
Gerdt’ 16.2 s 13.1 s

Name Bayer HTr
C_{6}  48.2 s 12.5 s
C′_{6}  23.1 s 12.5 s

In the Gerdt example, the ideal was discovered to be (1) after the DegRevLex computation in the Bayer remark algorithm. The Tag variable Hilbert-Driven module algorithm seems to be the best (and more stable). Since the number of algorithms and their possible combinations are high, we are developing an automatic tester. See section 4.36.

4.6 Saturation

There are two algorithms for the computation of a saturation if the saturating ideal is principal.

Proposition 4.36 Let R := k[x_{1}, …, x_{n}], I be an ideal of R and g ∈ R. Then

a) there exists n ∈ ℕ such that I : (g)^{n} = I : (g)^{∞}.

b) If t is a new ring variable, (I, tg + 1) ∩ R = I : (g)^{∞}.

Proof. See e. g. [CLS]. □

Using the first part of the proposition, a saturation is computed by several transporter computations. Any transporter algorithm may be used. Using the second part of the proposition, a saturation is computed directly via an elimination Gröbner basis. Which algorithm is the best depends from the input, but usually a) is better since it leads to split computations.

If I, g are homogeneous with respect to a system of weights w, it is possible to use the graded variants of the transporter algorithms, or the following

Proposition 4.37 Let R := k[x_{1}, …, x_{n}] be w-graded, I be a homogeneous ideal of R and g be an homogeneous element of R. Let t_{1}, t_{2} be new ring variables. Then

a. the ideal (I, t_{1}g + t_{2}^{∂_{w}(g)+1}) is homogeneous with respect to the system of weights

u := [ [w w w] | \begin{matrix}1 & 1 \\ ⋮ & ⋮ \\ 1 & 1 \end{matrix} ]

b. If τ is a term-ordering fulfilling the conditions of proposition 4.26, 2. then we have

(GB(I, t_{1}g + t_{2}^{∂_{w}(g)+1}, τ))_{|t_{2}=1} ∩ R = I : (g)^{∞}

c. If d = ∂_{w}(g) + 1, then ⟨I, t_{1}g + t_{2}^{d}⟩^{u} = ⟨I⟩^{w}(1 − λ^{∂_{w}(g)+1})

Proof. The proof of a) and b) is immediate. For c), choose a w compatible term-ordering τ on R[t_{1}, t_{2}] for which t_{2} > t_{1} > x_{1} > ⋯ > x_{n}. Hence, by the rules in 1.117 and remarking that ⟨I⟩^{w} = ⟨I⟩^{u}

⟨I, t_{1}g + t_{2}^{∂_{w}(g)+1}⟩^{u} = ⟨I, t_{2}^{∂_{w}(g)+1}⟩^{w}
= ⟨I⟩^{w} − λ^{∂_{w}(g)+1}⟨I : (t_{2})^{∂_{w}(g)+1}⟩^{w}
= ⟨I⟩^{w}(1 − λ^{∂_{w}(g)+1})

Remark 4.38 Using the algorithm of proposition 4.37 we compute a more complex Gröbner basis with the Hilbert-Driven algorithms. More experiments are needed to determine if this method is more efficient than the straightforward use of proposition 4.36 a.

4.6.1 Non-principal saturations

In the general case, there are two main methods to compute a saturation:

1. the repeated transporter method, like in the principal saturation situation;

2. the reduction to a principal saturation through some “generic” element.

Since the possible combinations of algorithms for the transporter and saturation (especially in the non-principal case) are many, while almost every algorithm requires a (albeit slight) modification in the code of the Buchberger algorithm, we are still working on these algorithms. Our conjecture is that the repeated intersection/repeated transporter algorithms in their Hilbert-Driven versions are the best, since usually it pays to split the computations, but further experiments are needed.

4.7 Inverse images, multiple intersections, etc.

In this section we briefly show that the ideas above can be adapted to build algorithms to compute inverse images, multiple intersections and intersection of inverse images. These algorithms always allow a double interpretation, through module tag variable algorithms and through syzygies; we leave to the reader to check the details of the substantial identity of the two approachs. In these cases it is possible to use Hilbert function techniques as in the previous cases.

Inverse images

Let R := k[x_{1}, …, x_{n}], M be a free R-module, N a submodule of M generated by the elements {g_{1} …, g_{m}}, and ϕ : R → M a module homomorphism determined by an element f ∈ R. We want to find the inverse image ϕ^{−1}(N).

Remark 4.39 It is easy to see that we obtain the result by eliminating the module variable t from (tf − 1, tg_{i}). This result corresponds to intersecting the submodule generated by f with N, representing its elements in the form af, and taking a.

Remark 4.40 It is easy to see that ϕ^{−1}(N) = N :_{R} (f). Hence inverse images can be computed through the algorithms for transporter described later.

In the same way, if

\begin{aligned}ϕ : & R^{n} & ⟶ & M \\ & e_{i} & ⇝ & f_{i} \end{aligned}

is a module homomorphism, one obtains the inverse image ϕ_{−1}(N) eliminating the first component from f_{i} + e_{i}, g_{j} in M ⊕ R^{n}.

Inverse images can be computed through syzygies: to compute an inverse image we have to combine an intersection (of the image with the module that we have to lift), a kernel, and add the kernel to any lifting of the elements of the image. Indeed, looking at the algorithm one sees that no forward-and-back is necessary, but just modifying the syzygy intersection algorithm slightly the inverse image is automatically computed. See for example [CT] if you want more details. The two algorithms are, as we have learned to expect, substantially identical.

Multiple intersections

If we have to intersect N_{1}, …, N_{r} ⊆ M, we can add tag variables t_{i}, and eliminate them from

∑_{i} t_{i}N_{i} + (1 + ∑_{i} t_{i})R.

The t_{i} are either ring or module variables, the second possibility being more efficient.

Another algorithm can be made as follows: the intersection of many submodules M_{1}, …, M_{r} of M can be seen as the intersection of Δ ⊆ M^{r} with M_{1} ⊕ ⋯ ⊕ M_{r}, where Δ, the diagonal, is the image of the map

\begin{matrix}M & @ >> > & M^{r} \\ m & ⇝ & (m, …, m). \end{matrix}

We can compute the intersection with one of the algorithms for intersection of two submodules. The two algorithms sketched here substantially coincide. If it is more efficient using the algorithms described above or repeatedly apply the usual intersection algorithm depends on the input.

Intersection of inverse images

The intersection of many inverse images of N with respect to several maps ϕ_{1}, …, ϕ_{r} : R^{n} → M is the inverse image of N^{r} with respect to the map (ϕ_{1}, …, ϕ_{r}) from R^{n} to M^{r}. This problem too can hence be solved with one Buchberger algorithm, whose details are left to the reader. Remark that the problem of intersection of many inverse images is the key to the algorithm describing the conductor of an integral extension described in [CT]; with these remarks the description of that algorithm (but experimentally not the computation itself) is simplified.

90 CHAPTER 4. OPERATIONS

Ideal Decompositions

In this chapter we give a brief resumé of the problems connected with some ideal decomposition algorithms (strict, equidimensional and reduced) and we describe a fast and quickly implementable algorithm that computes such decompositions. While no attempt to a full discussion of the problem has been done, the discussion of a more complex (surely non-basic) algorithm allows us to show situations where the necessity of the optimizations described in the previous chapters arise naturally. Moreover, the algorithm described here seems to be at least as efficient as the direct algorithms of [EHV] (see the discussion in subsection 5.5).

This chapter is organized in the following way:

a brief overview of the decomposition problems, section 5.1;

a description of the splitting techniques, section 5.2;

a discussion on the use of flatness in the projection to an hypersurface, section 5.3;

a description of the algorithm, section 5.4;

some statistics, section 5.5;

a detailed example, section 5.6.

5.1 A brief overview of the problem

The problem of decomposing an ideal into pure-dimensional components (if necessary reduced) is a key step in several basic algorithms of commutative algebra. The computation of the radical can be performed as intersection of the reduced components (but we wonder why you should really perform this intersection that throws away additional insight in the structure of the ideal), and the primary or the irreducible reduced decomposition can be more easily obtained from a pure-dimensional decomposition. Moreover this step can be performed independently of the ground field —at least if it is perfect— while the primary and irreducible decompositions require factorization, that depends on the ground field.

Several algorithms have been proposed for this computation, and fall mainly into two classes: the family of projection algorithms, whose prototype is the primary decomposition algorithm of [GTZ], and the direct, syzygy-based algorithms, like [EHV], see also [V].

The superiority of one type of algorithms over the other has not been settled; in [EHV] it is argued that the direct methods are superior since for projection methods “sufficiently generic” projections are needed. This assertion is only marginally true for the current literature — already in [AMR] “generic linear combinations” are needed only for finding a single univariate polynomial, through linear algebra and a variation of [FGLM], and the algorithms of [L] and [K2] compute triangular decompositions through characteristic sets without changes of coordinates. Moreover projection algorithms do not have the limitation to large characteristics of [EHV], in particular the example of D. Jaffe in [EHV] can be easily handled by our algorithm (and indeed by all projection algorithms).

In this paper we describe algorithms for equidimensional decompositions, that can be seen as a marginal modification of an algorithm of [AMR], but that completely avoid generic or random projections, and does not need lexicographic Gröbner bases or characteristic sets, hence can be a candidate to a best competitor against direct algorithms. Some tests seem to support the belief that our algorithms are much faster than direct algorithms.

Definition 5.1 Let R := k[x_{1}, …, x_{n}] and I be an ideal of R. Then the pure-dimensional ideals I_{1}, …, I_{k} are

1. a strict equidimensional decomposition of I if I = ∩I_{j};

2. an iso-radical equidimensional decomposition of I if ∩ I_{j} ⊃ I and \sqrt{∩I_{j}} = \sqrt{I};

3. a reduced equidimensional decomposition of I if each I_{j} is reduced and \sqrt{I} = ∩I_{j}.

Remark 5.2 The strict equidimensional decomposition is a step towards primary decomposition; the reduced equidimensional decomposition is a strong form of radical computation; and the iso-radical decomposition is simpler and sometimes sufficient, and already exhibits the main features. Moreover it is possible to recover the primary decomposition from a strict decomposition, as shown in [SY] and [K3].

The basic computational tools used here are Gröbner bases with respect to suitable orderings, and ideal saturation, e. g. affine variety difference. We stress that no projection in generic (or random) direction, addition of random linear forms, etc. are used. The computation of the dimension and of the multiplicity are used to guide some steps of the algorithms.

The relation of flatness with variation of staircases, that is our main proof tool, has already been considered in [BGS]; specialization of Gröbner bases is already a main tool in [GTZ], see also [G] and [K1].

5.2 Splitting Techniques

The basic technique that we use to decompose an ideal I ⊆ A is to split it according to an element a ∈ A.

Definition 5.3 Let R := k[x_{1}, …, x_{n}], I be an ideal of R and a ∈ R. Then the ideals I_{1}, …, I_{k} ⊂ R are a splitting of I if I_{1} + ⋯ + I_{k} ⊃ I and \sqrt{I_{1} ∩ ⋯ ∩ I_{k}} = \sqrt{I}. A splitting is strict if I_{1} ∩ … ∩ I_{k} = I. A splitting is proper if I_{j} ⊋ I for each j : 1 … k.

The basic operation on ideals that we use to split an ideal is the saturation, e. g. the closure of the set difference of the locus of I and the locus of J. This is accomplished through the ideal saturation. As seen in chapter 4, saturation computations are simpler if the ideal J is a principal. The basic tool to obtain a strict splitting is the following lemma, that is already the key step of [GTZ].

Proposition 5.4 Let I be an ideal of the ring R := k[x_{1}, …, x_{n}], a be an element of R and assume that I : (a)^{∞} = I : (a^{k}); then

a) I = (I : (a^{k})) ∩ (I + (a^{k})).

b) \sqrt{I} = \sqrt{I : (a^{k})} ∩ \sqrt{I : (I : (a^{k}))^{∞}}.

Proof. The proof of a) is is quite easy: if b = x + a^{k}y ∈ I with x ∈ I, y ∈ R, and ba^{k} ∈ I, then a^{2k}y ∈ I, hence a^{k}y ∈ I, and b ∈ I. The proof of b) follows from the remark: if we compare a primary decomposition of I with primary decompositions of I : (a^{k}) and (I, a^{k}), in I : (a^{n}) appear those associated primes of I that do not contain a, and in (I, a) appear primes associated to I that contain a, and possibly other components embedded in components of (I : (a^{n})). □

Remark 5.5 The decomposition in a) is strict, and moreover \sqrt{I} = \sqrt{I : (a^{k})} ∩ \sqrt{(I, a^{k})}. The decomposition in b) is only iso-radical.

Remark 5.6 If the computation of the saturation is done by repeatedly use of the module tag variable algorithm, the computation of I : (a)^{∞} gives as a side effect the computation of the Gröbner basis of (I, a^{k}) for a suitable k, see 4.5.3.

The advantage of case b) decompositions is the avoidance of the extraneous components introduced in (I, a^{k}) but in so doing we risk to discard some of the embedded components of I. It is not clear moreover if it is practically more convenient to avoid the extraneous components, or to avoid the more complicated saturation I : (I : a^{k})^{∞}; more experiments are needed to decide the issue.

The following well known result (see e. g. [AM]), is useful for the generalization of proposition 5.4 to non principal quotients.

Lemma 5.7 Let R := k[x_{1}, …, x_{n}] and ℘ be a prime ideal, 𝔮 a ℘-primary ideal. Then the ideal 𝔮 : (a)

1. is equal to 𝔮 if a ∉ ℘

2. is equal to ℘-primary if a ∉ 𝔮

3. is equal to R if a ∈ 𝔮

Proposition 5.8 Let R := k[x_{1}, …, x_{n}] and I, J be ideals of R. Then

a) \sqrt{I} = \sqrt{I : J^{∞}} ∩ \sqrt{(I, J)}

b) \sqrt{I} = \sqrt{I : J^{∞}} ∩ \sqrt{(I : J^{∞})^{∞}}

Proof. Case a) holds since it is true that if 𝔮 is ℘-primary and J ⊈ 𝔮 then 𝔮 : J^{∞} is ℘-primary: it is intersection of ℘-primary ideals because of Lemma 5.7 and because I : (J + K) = (I : J) ∩ (I : K). Case b) follows from a) by the same reasoning of proposition 5.4. □

Other, simpler splittings are available

Proposition 5.9 Let R := k[x_{1}, …, x_{n}], I be an ideal of R and a, b ∈ R. we have that :

a) if ab ∈ I then \sqrt{(I, ab)} = \sqrt{(I, a)} ∩ \sqrt{(I, b)}.

b) If a^{k} ∈ I, then \sqrt{(I, a^{k})} = \sqrt{(I, a)}.

Proof. For case a), since ab ∈ I, we have that I^{2} ⊂ (I, a)(I, b) ⊂ I ⟹ \sqrt{(I, a) · (I, b)} = \sqrt{I}. Thus \sqrt{(I, a) ∩ (I, b)} = \sqrt{(I, a) · (I, b)} = \sqrt{I}. Case b) follows immediately from case a)). □

Remark 5.10 For strict splittings, we have to assure the properness of the splitting. I. e., a factoring splitting with a ∈ I is not proper. But principal splittings may be non proper even if a ∉ I and b ∉ I. If a ∈ \sqrt{I}, then I : (a)^{∞} = (1), and (I, a^{k}) = I for sufficiently large k, hence the splitting is not proper. Hence, for strict splittings, we use only principal splittings with splitting elements not in the radical.

A summary of the splittings we have introduced:

Principal: I → (I : (a), (I, a)) with a ∈ R and I : (a) = I : (a)^{∞};

Loose: I → (I : J^{∞}, I + J)

Bi-saturating: I → (I : J^{∞}, I : (I : J^{∞})^{∞});

Factoring: I → ((I, a), (I, b)) when ab ∈ I

Radical: I → (I, a) when a^{n} ∈ I

5.3 Staircases, flatness and hypersurfaces

5.3.1 Families of Gröbner Bases and block orderings

Definition 5.11 Let R := k[x_{1}, …, x_{n}], τ ∈ TO(R) and I be an ideal of R. Then the staircase of I is the set of the terms in T^{n} that don’t belong to Lt_{τ} (I). It is a vector space basis of k[x_{1}, …, x_{n}]/I.

We have seen in chapter 1 that the computation of the dimension (hence codimension) and multiplicity of an ideal may be done through its Hilbert function. Another algorithm, [BW] computes the codimension through the computation of the complementary set of a maximal subset of algebraically independent variables. We may hence suppose, up to a reordering, that dim (R/I) = c and that the variables x_{1}, …, x_{c} are algebraically independent. Let R := k[x_{1}, …, x_{n}], and consider a partition of the variables of R into two subsets x and y. Let τ be an elimination term-ordering for x.

Considering the ordering τ the ring k[x, y] can be naturally seen as (k[y])[x], e. g. the set of the polynomials in x with coefficients in k[y]. If I is an ideal of k[x, y], and I_{1} = I ∩ k[y], we can see k[x, y]/I = (k[y]/I_{1})[x]/(I/I_{1}). If in particular I_{1} is a prime ideal, we can see the polynomials of k[x, y] as polynomials with coefficients in the quotient field Q(k[y]/I_{1}) of k[y]/I_{1}; hence the question arises if the image of a reduced Gröbner basis is still a Gröbner basis, and the answer is affirmative. Consider the map

ϕ : k[x, y] → k[x, y]/I_{1} = k[x, y] ⊗_{k[y]} k[y]/I_{1} → k[x, y] ⊗_{k[y]} k[y]/I_{1} = 𝔮(k[y]/I_{1})[x]

this means considering f ∈ k[x, y] as a polynomial in x with coefficients in k[y] that are considered mod I_{1}. Hence, we may write a polynomial f ∈ k[x, y], f = cx^{α}y^{β} + … as a polynomial in (k[y])[x], e. g. f = x^{α}g(y), and Lt_{τ} (g) = y^{β}.

Theorem 5.12 Let R := k[x_{1}, …, x_{n}], {x, y} be a partition of {x_{1}, …, x_{n}}, τ := σ_{x} × σ_{y} be an elimination term-ordering for x and let I be an ideal such that I_{1} = I ∩ k[y] is prime; let G be a Gröbner basis of I. Then the image of G in (k[y]/I_{1})[x] is a Gröbner basis with respect to σ_{x}.

Proof. We may assume that G is irrendundant. This means that if we have f ∈ G, f = x^{α}g(y), α ≠ 0, we have g ∉ I_{1}, otherwise g would be reducible by an element of I_{1}, hence by another element of G; this implies that for elements of G if Lt_{τ} (f) = x^{α}y^{β}, then Lt_{τ} (ϕ(f)) = x^{α}. Recall that a set G of elements of an ideal is a Gröbner basis if and only if every syzygy between the initial power product of two elements of G can be extended to a syzygy between the elements of G. Extending a syzygy means to find a syzygy beginning with the same monomials in the standard syzygy ordering induced by the ordering of the current ring. (This is just a rephrasing of the criterion that a set of generators is a Gröbner basis if and only if every S-polynomial is reducible to 0). Let now σ̄ be a syzygy between Lt_{τ} (ϕ(f_{i})) and Lt_{τ} (ϕ(f_{j})), f_{i}, f_{j} ∈ G; this identifies a syzygy σ between Lt_{τ} (f_{i}) and Lt_{τ} (f_{j}) obtained multiplying by suitable powers of some y variables. This syzygy can be lifted to a syzygy Σ of G, since G is a Gröbner basis, and identifies a syzygy Σ̄ of ϕ(G) that lifts σ̄. This proves that ϕ(G) is a Gröbner basis. □

Remark 5.13 Remark that in the proof the key point is that Lt_{τ} (f) and Lt_{τ} (ϕ(f)) only differ by the power product in the y variables; One can remark that this is not necessary to be true for all the elements of G, but that before checking it, one can delete redundancies in ϕ(G).

Definition 5.14 Let A be a ring. Then a geometric point y of A is a field that is an A-module, and if B is another A-module and f ∈ B, then f(y) is f ⊗ 1 in B ⊗_{A} y. In particular

1. a prime ideal ℘ of A (e. g. an element of Spec(A)) defines a geometric point being the quotient field of A/℘;

2. if A is a domain, the 0 ideal identifies a geometric point (the generic point), and Theorem 5.12 says that if I_{1} is prime then the image of a Gröbner basis at the generic point is still a Gröbner basis.

Definition 5.15 Let R := k[x_{1}, …, x_{n}], x, y a partition of {x_{1}, …, x_{n}}, τ a elimination term-ordering for the x variables and f ∈ R. Then the reduced initial term Lt_{τ,x}(f) is the term Lt_{τ} (f) from which the variables y are deleted. Expressing f as polynomial in the x variables with coefficients in the y variables, we have f = Lt_{τ,x}(f)g(y) + h, all the monomials of h being smaller than Lt_{τ,x}(f). We denote lc_{τ,x}(f) = g(y).

Theorem 5.16 With the notation of theorem 5.12, for almost all (in the sense of Zariski topology) prime ideals J ∈ Spec(k[y]/I_{1}) the image of G in (k[y]/J)[x] is a Gröbner basis with respect to σ_{x}.

Proof. We can put the thesis of Theorem 5.12 as a question for the geometric points of Spec(k[y]/I_{1}), e. g. consider J ∈ Spec(k[y]/I_{1}, instead of I_{1}, and I + J instead of I. The answer is that for an open subset of Spec(k[y]/I_{1}) the Gröbner basis of I is still a Gröbner basis (usually redundant). If I_{1} is prime this set is non-empty since it contains the generic point. It is computed as follows: Let G be the reduced Gröbner basis of I with respect to τ ∈ TO(R). Extract from G a minimal set G′ of polynomials, not in I_{1}, such that every other element f of G not in I_{1} is such that Lt_{τ,x}(f) is multiple of Lt_{τ,x}(f′) for a suitable element f′ ∈ G′. The set G′ may be not unique. For each element of h_{i} ∈ G′ consider h_{i} = g_{i} Lt_{τ,x}(h_{i}) + h′_{i}, where g_{i} ∈ k[y] and the power products of h′_{i} are smaller than Lt_{τ,x}(h_{i}). The h_{i} are non-zero in k[y]/I_{1} since they are reduced modulo the Gröbner basis of I_{1}. Remark that, because of the reduction hypothesis on G, no g_{i} is in I (otherwise one could reduce g_{i} through elements of G \ G′). Hence, for each geometric point y of I_{1} for which no g_{i}(y) vanishes, we have that G′_{y} = {f(y) | f ∈ G′} is a Gröbner basis of y with respect to σ_{x} with the same proof given for theorem 5.12. Thus, if I_{1} is prime, since each of the g_{i} does not vanish on the locus of I_{1}, there is a dense open subset of Spec(k[y]/I_{1}) where no g_{i} vanishes, and in this open set G specializes to a Gröbner basis. □

Remark 5.17 The image of G may be built using the algorithm sketched in the proof of theorem 5.16.

Remark 5.18 Usually we don’t know if I_{1} is prime, but we may check if the product ∏ g_{i} is in \sqrt{I_{1}}. If this is the case, we have discovered that I_{1} is not prime, and we can split I_{1} (and I) into smaller components. Otherwise ∏ g_{i} does not vanish on a non-empty open subset of Spec(k[y]/I_{1}) even without the primality assumption. In this case we have found a non-empty open subset such that on it a Gröbner basis specializes.

Remark 5.19 Remark that every different choice of G′ gives a (possibly different) open subset where the staircase is constant; and it is even possible that the Gröbner basis specializes to a Gröbner basis with a different staircase.

The situation is more complicated when I_{1} is not reduced, since it may happen that some g_{i} vanishes identically, and we might not be allowed to split I_{1} since we are looking for strict splittings. The situation will be further discussed.

5.3.2 Staircase variation and flatness

Consider this situation: we have an ideal I ⊆ k[x, y] and J = I ∩ k[y]; consider the projection morphism between the corresponding algebraic varieties, induced by the map

k[y]/J → k[x, y]/I

We want to find an open subset where the map is flat. We have seen in the previous section how to find an open subset where the staircase is constant, and either this subset is non empty or we find a splitting (except a special case that will be discussed separately).

Lemma 5.20 Let R := k[x_{1}, …, x_{n}] and I, J be ideals of R. Then if we have a map

Spec(k[x, y]/I) → Spec(k[y]/J)

and the Gröbner basis of the fiber has constant staircase in an open subset of Spec(k[x, y]/I), then the map is flat on the same subset.

Proof. This can be easily seen e.g. if the generic fiber is finite (e. g. the staircase is closed) since flatness is implied by finiteness and constant k-dimension of the fiber; and this dimension is computed through the staircase (it is the multiplicity). In the higher dimensional case, one goes through homogeneization (with respect to a suitable weight, such that the Gröbner basis is still Gröbner with respect to an ordering compatible with the weight) and considering the filtration induced by the grading; then the Hilbert function is constant, and this proves the flatness (see e.g. [Mu], or [E]). □

We want to be more precise, generalizing the result that the staircase freely generates the quotient. As in the previous section, let R := k[x_{1}, …, x_{n}], x, y a partition of {x_{1}, …, x_{n}}, τ := σ_{x} × σ_{y} an elimination term-ordering for x, let I be an ideal such that I_{1} = I ∩ k[y] is prime; let G be a Gröbner basis of I; then the image of G in (k[y]/I_{1})[x] is a Gröbner basis of I_{1} with respect to σ_{y}. G be the reduced Gröbner basis of an ideal I ⊆ k[x, y]; extract from G a minimal set {h_{i}} = H of polynomials, not in I_{1} = I ∩ k[y], such that every other element f of G not in I_{1} is such that Lt_{τ,x}(f) is multiple of Lt_{τ,x}(h_{i}) for a suitable element h_{i}, and let h_{i} = g_{i} Lt_{τ,x}(h_{i}) + h′_{i}. Let E be the open subset of Spec(k[y] where the g_{i} do not vanish (it may be empty). Consider the x-staircase S of I, being the set of x-power products that are not multiple of some Lt_{τ,x}(f), f ∈ I (or, equivalently, f ∈ G). We have seen that S is the staircase of I(y) for every geometric point y of E.

Theorem 5.21 Let E be an R module. If E is not empty, then the x-staircase S is a set of free generators of k[x, y]_{E} as k[y]_{E}-module.

Proof. On E the g_{i} are invertible, and the h_{i}/g_{i} are monic in x, hence S generates k[x, y]_{E}; and S is linearly independent on k[y]/I_{1} since G is a Gröbner basis, hence linearly independent on (k[y]/I_{1})_{E} by the flatness of localization. □

Remark 5.22 This proves that k[x, y]/I is k[y]/I_{1}-flat on E; changing E through a different choice of H (or even through different term-orderings) one can find other open subsets where k[x, y]/I is flat.

The flatness is important because of this lemma:

Lemma 5.23 Let A be a pure-dimensional ring, and B a finite flat A-algebra. Then B is puredimensional.

Proof. Consider a prime 𝔮 of B associated to (0), and let b ∈ B be an element annihilated by 𝔮; because of flatness, 𝔮 ∩ A is a prime of A associated to (0), and because of the finiteness hypothesis the dimension of 𝔮 is equal to the dimension of 𝔮 ∩ A. □

5.3.3 Projecting to an hypersurface

Consider an ideal I ⊆ k[x_{1}, …, x_{n}], and the corresponding affine variety V := V (I); assume that V has dimension d. We want to project V into a subspace of dimension d + 1. We have seen in chapter 4 that this is possible through a Gröbner basis computation with respect to an elimination term-ordering. We don’t want to use a “sufficiently generic” projection like [AMR], because we want to keep the problem as sparse as possible. We use a very special projection, a projection along coordinates on a hypersurface.

We have compute the dimension of V. First, we compute a Gröbner basis with respect to an ordering whatsoever, then we use the recursive algorithm for the computation of the dimension 1.4.4. This algorithm gives as a side effect the identification of a maximal subset of algebraically independent variable in {x_{1}, …, x_{n}}. We then choose a subset y of d + 1 variables that contain an algebraically independent set. To ease the notation, we assume that these are the last d + 1 variables. Let c = n − d be the codimension, we have that x = (x_{1}, …, x_{c−1}) and y = (x_{c}, …, x_{n}). Let τ be an elimination termordering for the first c − 1 variables. We compute the Gröbner basis of I with respect to τ, and the elimination ideal I′ = I ∩ k[y]. The ideal I′ describes an affine variety V′ that is the projection of V along the coordinates x_{1}, …, x_{c−1} If the ideal I is in “general position”, then the map from V to V′ is generically 1-1, irreducible components of V and V′ are in 1-1 correspondence, the dimension of the components is preserved, and it is impossible that V′ is reduced if V is not reduced; hence in particular V is pure-dimensional and reduced if and only if V′ is pure dimensional and reduced, e. g. I′ is generated by a squarefree polynomial g. If not, consider the squarefree GCD g of a system of generators of I′; we can add g to I to discard the lower-dimensional components and at least a part of nilpotents.

With a special projection, like the ones to which we are bound, several phenomena can happen:

1. some components of V may be projected into smaller dimension,

2. some components of V may disappear inside other components,

3. the map may be of degree > 1 on some components,

4. some embedded components may disappear altogether,

5. some non-reduced components may have reduced image.

We can take care of all these phenomena through flatness, except the last one, that is important only for the reduced decomposition.

5.4 The algorithms

Now we describe the algorithms. We have three variants, for strict, iso-radical and reduced equidimensional decomposition. The algorithm for iso-radical decomposition can be seen as the main one; it has some optional steps, that are probably useful for the iso-radical decomposition, are necessary for the reduced decomposition, and forbidden for the strict decomposition. Moreover, for the strict decomposition all the splittings have to be strict, for the other decompositions we can choose other splittings. And for the reduced decomposition there is a final step that will be described separately.

We first describe the algorithm for the iso-radical decomposition. The algorithm for the reduced decomposition 5.4.3 is easily derived from that. the algorithm for strict decomposition 5.4.4 requires some more caution in the splittings. Since the algorithm are quite complex, there is no pseudo-code, but only a step-by-step description.

5.4.1 Iso-radical decomposition algorithm

The algorithm proceeds inductively, finding for every ideal I either a proof that it is equidimensional or a proper splitting into two ideals (a special case being the addition to an ideal of a root of one element). The algorithm terminates by noetherianity; but indeed one can also remark that in every splitting that we consider either the dimension or the multiplicity or the number of associated primes decreases for each factor.

We describe the algorithm in steps, in which a splitting might be discovered (and hence we have to repeat from the first step for each of the components). At the end of all the steps we have found one component of the sought decomposition. When we have all the components, we still have (optionally) to eliminate redundancies.

Step 1 Compute the dimension d of I, c = n − d, and if needed reorder the variables in such a way that the last d are algebraically independent mod I. Compute a Gröbner basis with respect to an elimination term-ordering for the first c − 1 variables, thus computing I′ = I ∩ k[y]. If I′ is not a principal ideal, then let g be the GCD of its generators, and split I along g; otherwise go to the next step.

Step 2 If g is square-free, go to the next step; otherwise split g through a square-free decomposition, and split I accordingly. This step is optional, but usually it speeds the algorithm.

Let G be the reduced Gröbner basis of I (with respect to the current block ordering), and erase g from G; extract from G a minimal set G′ of polynomials such that given h ∈ G exists h′ ∈ G′, and Lt_{τ,x}(h′) divides Lt_{τ,x}(h) (the set G′ may be not unique). For each element of h_{i} ∈ G′ consider h_{i} = g_{i} Lt_{τ,x}(h_{i}) + h′_{i}, where g_{i} ∈ k[y] and the power products of h′_{i} are smaller than Lt_{τ,x}(h_{i}). Clearly no g_{i} is multiple of g, since every h_{i} is in normal form with respect to g.

Step 3 If some g_{i} has a common factor with g, split I along g_{i}.

We assume now that no g_{i} has a factor in common with g. Define g′ = ∏ g_{i}. Then g′ is not in I.

Step 4 Compute I′′ = I : (g′)^{∞}; if I′′ ≠ I split along g′.

Now the map Spec(k[x, y]/I) → Spec(k[y]/(g)) is flat where g′ does not vanish; this means that in these points the dimension is d, and since I is saturated with respect to g′ this means that no associated prime contains g′; hence I is of pure dimension d.

Step 5 Conclusion: I is pure-dimensional

Remark 5.24 Some variants :

a) An alternative for step 4 is to split for each of the g_{i} separately; this is probably more convenient, since each transporter is easier, and it is usually a good technique to have several easier steps instead of an harder one.

b) Another alternative consists in avoiding the arbitrary choice of the h_{i}; more precisely, erase from G′ = G \ {g} all the elements h such that Lt_{τ,x}(h) is a proper multiple of Lt_{τ,x}(h′) for another h′ ∈ G′; then partition G′ into classes H_{i} of elements having the same Lt_{τ,x}, and for each class consider the ideal J_{i} generated by the C_{x}(h), h ∈ H_{i}. Then we can use loose or bi-saturating splittings with the J_{i}.

c) A further possibility is to try to factor all the elements of G, and split with every possible factor, either with factoring splittings or with strict splittings if needed.

5.4.2 Optimizations

One of the main advantages of the projection methods, and hence of our algorithm, is the possibility of discover, during the computation, useless or trivial branches. Trivial, but useful, cases arise if the ideal is linear or monomial. This is not infrequent after some splitting.

Remark 5.25 Suppose that we know an upper bound on the codimension of the associated primes, for example from the number of generators of the input ideal. Then in the algorithm we may discard all the ideals that are of codimension higher than the limit, since it is sure that they will be redundant in the final decomposition.

Remark 5.26 If the ideal is zero-dimensional, it is obviously pure-dimensional.

Such cases occur very often throughout the branching process, especially on the last recursive steps. Other optimizations are substantial : the Hilbert-Driven algorithm, a factoring Buchberger algorithm. Using the saturation algorithms described in chapter 4, the computation of (I, a^{k}) is a side-effect of the computation of (I : a^{k}) = I : a^{∞}.

When the input ideal is homogeneous with respect to a system of weights w, when we compute the first Gröbner basis to have the dimension, we have easily the Hilbert function too. The Hilbert-Driven algorithm may hence be used en lieu of the usual Buchberger algorithm, and the Hilbert-Driven version of the saturation algorithm may be used too.

If it is available a factoring Buchberger algorithm, see chapter 2, every Gröbner basis computation may be performed with it. Every branch of the factoring algorithm is then treated as a split. Since the number of branches may be very high, some care has to be taken in using the factoring method.

5.4.3 Reduced decomposition algorithm

If we are looking for a reduced decomposition, we have not yet finished the work, since I might still have nilpotents.

Some trivial cases appear frequently among the ideals produced by the iso-radical decomposition algorithm :

Lemma 5.27 Let R := k[x_{1}, …, x_{n}] and I be an ideal of R. Then

1. If I is linear, then I is radical.

2. If I := (g) then \sqrt{I} = (SQFR(g)).

3. If I = (t_{1}, …, t_{k}) is monomial, then \sqrt{I} = (SQFR(t_{1}), …, SQFR(t_{k})).

Some less trivial cases are the following

Remark 5.28 Let R := k[x_{1}, …, x_{n}] and I be an equi-dimensional ideal of R. Then if the multiplicity of I is equal to the multiplicity (the degree) of g, then the ideal is radical.

Proposition 5.29 Let I ⊂ k[x_{1}, …, x_{n}] be an ideal, and Lt_{τ} (I) its leading term ideal of I with respect to some term-ordering τ. Then Lt_{τ} (I) radical ⇒ I radical.

Proof. Let f ∈ R such that f^{k} ∈ I. Then

\begin{matrix}Lt_{τ} (f^{k}) ∈ Lt_{τ} (I) \\ Lt_{τ} (f^{k}) = Lt_{τ} (f)^{k} \end{matrix} \} ⟹ Lt_{τ} (f)^{k} ∈ Lt_{τ} (I) ⟹ Lt_{τ} (f) ∈ Lt_{τ} (I)

hence ∃ g ∈ I s. t. Lt_{τ} (g) = Lt_{τ} (f), hence (f − g)^{k} = f^{k} + g · (…) ∈ I. But Lt_{τ} ((f − g)^{k}) ∈ Lt_{τ} (I) ⟹ Lt_{τ} ((f − g)) ∈ Lt_{τ} (I). Then, there exists g_{1} ∈ I s. t. Lt_{τ} (g_{1}) = Lt_{τ} (f − g) and the thesis follows by recursion. □

These remarks allow to cheaply recognize some reduced ideal; indeed, in all cases the checks are quite easy if we have a Gröbner basis. In general, more work is required.

To test if an equi-dimensional ideal is reduced, or to compute the radical of such an ideal, we may use the 0-dimensional test techniques of [AMR] or the jacobian techniques of [EHV]. Since the tests and the computation of the radical using these techniques may be quite expensive, we prefer to use a variant of the iso-radical algorithm. It is not sure that this is the best way, but at least it is not too bad:

We need the some trivial remarks:

Remark 5.30 If ϕ : V → W is an affine variety morphism, the Zariski tangent space of ℘ ∈ V is mapped into the Zariski tangent space of ϕ(℘).

Remark 5.31 If in the lemma above ϕ is induced by a projection, the Zariski tangent space of ℘ is contained in the sum of the tangent space at ϕ(℘) plus the space parallel to the projection direction.

Corollary 5.32 If V embedded in an affine space of pure dimension d has a singular point ℘, then exists a projection π along a coordinate space into an affine space of dimension d + 1 such that π℘ is singular.

Indeed, the Zariski tangent space, that has dimension > d, cannot project non-injectively in every direction.

With these remarks we can try different directions, and either find one that allows us to proceed inductively, or prove that V̂ is not only pure-dimensional, but also generically non-singular, hence reduced. The conclusion can be obtained when the intersection of the projection directions is empty. In some cases this can be a very expensive part; for example, if I is the ideal (x_{i}^{2} − x_{i})_{i=1...n}^{2} we need n projections to find the radical. But in this case also the other known algorithms are quite expensive. If I is of dimension d in a polynomial ring with n variables in general we need m ≥ n/(d + 1) different projections, since every computation with a different choice of independent variables decreases of a dimension d + 1 the directions in which nilpotents are concealed.

The idea of the reduced decomposition algorithm is : for every direction, compute the Gröbner basis of the input ideal I. If the resulting projection ideal I′ is not principal, find a principal ideal (g) by recursion. Otherwise, take the squarefree h of g and, if h doesn’t belong to the ideal, add it the the ideal and restart. After the examination all the directions, if no branching happened, the ideal is reduced.

Remark 5.33 Let I be pure-dimensional, non-reduced ideal. If a ∈ \sqrt{I} − I, not necessarily (I, a) is pure-dimensional.

Hence, after adding the squarefree element to the ideal, we have to use the iso-radical decomposition algorithm again to have a pure-dimensional decomposition.

Reduced decomposition algorithm

The input I ⊂ R is pure-dimensional. The Gröbner basis for some term-ordering τ is already been computed by the iso-radical decomposition algorithm.

Step 1 Compute the dimension d of I, c = n − d.

- If I is principal or monomial then return SQFR(I).

- If I is linear or Lt_{τ} (I) is radical then return I.

Compute the list O of all the necessary set of variables (those corresponding to the necessary directions). For each set V in L let I be the complementary set with respect to {x_{1}, …, x_{n}} and do the following steps :

Step 2 Let σ be an elimination term-ordering for V. Then compute G_{σ} the Gröbner basis of I with respect to σ. If Lt_{τ} (I) is radical, the return I. Let I′ := I ∩ k[I]. If I′ on I′. Let I′′ := (g) be the resulting principal ideal.

Step 3 Let g′ := SQFR(g). If deg(g′) = mult(I) the return I.

Step 4 If g′ ∉ I then let L be the list of pure-dimensional ideals produced by the application of the iso-radical decomposition algorithm to the ideal (I, g′). Return the union of the result of the application of the reduced decomposition algorithm to every element of L.

Step 5 Conclusion: I is reduced. Return I.

In the case of reduced decomposition, it may be of interest to intersect the reduced equi-dimensional ideals produced by the algorithm, obtaining the radical. If the input ideal is homogeneous with respect to some system of weights, this can be done using the Hilbert-Driven intersection algorithm shown in chapter 4.

5.4.4 Strict decomposition algorithm

If we are looking for a strict decomposition, we are allowed to use only strict splittings. Some modification to the iso-radical algorithm are necessary :

a) Step 2 has to be skipped.

b) In every other step, use only strict splittings, see section 5.2.

c) In step 3, it may be that we cannot produce a strict splitting since g_{i} is in the radical of I_{1}, e. g. a power of g_{i} is a multiple of g. In this case k[x, y]/I is not generically flat over k[y]/I_{1}.

Assume now that the first of the y (let it be y_{1}) is algebraically dependent from the others in k[y]/I_{1}, e. g. that y_{1} appears in g (one can always assume that, up to a permutation of the variables). Let y′ = y \ {y_{1}}, x′ = x ∪ {y_{1}} and change the ordering to a block ordering eliminating x′. Recompute the Gröbner basis of I. Clearly I ∩ k[y′] = (0).

We now can proceed as in the main algorithm: find a polynomial g′ in k[y′] such that the map k[x, y]/I → k[y′] is flat outside of the locus of g′, (g′ ∉ I since I ∩ k[y′] = (0)) and continue with step 4.

Remark 5.34 The use of c) for non-strict decomposition is counterproductive : it does not allow to discover and eliminate nilpotents, (hence it cannot be used for the reduced decomposition) and eliminating one further variable makes the computations more costly.

5.5 Tests

A first complete experimental implementation of algorithm has been made in CoCoA, using the high-level language CoCoAL, (in particular the GCD is implemented through Gröbner basis computations). The implementation is much less efficient since it does not include all the heuristics and simplifications that are natural in a semi-automatic computation.

There is no established benchmark for decomposition and radical computations, hence we propose some of our tests, that are “natural examples”, existing in the literature. All the examples are contained in the POSSO test suite.

G Gerdt example, see [BGK];

B Butcher example, see [BGK];

H2,H3 Two examples of Hietarinta, coming from theoretical physics problems; they are contained, as Hietarinta-1 and Hietarinta-3 in the POSSO test suite (the Hietarinta-2 problem is a trivial ideal).

8_{3} The hypothesis of the Maclane 8_{3} theorem: (C + cE − eC − E, F − C, E − G, eF + fH + hE − fE − hF − eH, fG − gF, gH + G − hG − H, cH − hC): see [CT] where (substantially) the real radical of this ideal is computed.

E2,E3 Two examples of Amrhein-Gloor-Küchlin, see [AGK]; they are of dimension zero, hence are interesting only for the computation of the radical.

E2 (x + 3xy^{3} + y^{4} + yz^{2}, −x^{2}z + 2y^{3}z + z^{2} + 2yz^{2} + 3xyz^{2}, 3x^{3} + xy^{2} + yz^{2} − 2xz^{3}), E3 (x^{2} + y^{4} + x^{3}z + yz − 2xz^{3}, −x^{2}y^{2} − y^{3}z − z^{3} − 3yz^{3}, y^{4} − x^{2}z + 2y^{2}z − 2xyz^{2}).

L An example of Logar (personal communication): (2ahi + bh^{2} + 2cdj − cei − cgh − deh, ai^{2} + 2bhi + 2cfj − cgi + d^{2}j − dei − dgh − efh, bi^{2} + 2dfj − dgi − efi − fgh, f(fj − gi)).

O Oaku’s G_{3} (see [SY]): (((12y+8)x^{2} +(2y+2)x)ηξ +((−15y^{2} −4y)x−4y^{2} −y)η^{2}, −xξ^{2} +((−12y−8)x+ 2y)ηξ+(15y^{2} +4y)η^{2}, (81y^{4}x^{2} +(−54y^{3} −12y^{2})x−12y^{3} −3y^{2})η^{3}, (−24yx+6y^{2} −6y)η^{2}ξ+(−81y^{4}x+ 81y^{3} + 24y^{2})η^{3}, (48x^{2} + (−30y + 12)x − 6y)η^{2}ξ + ((81y^{3} − 54y^{2} − 24y)x − 21y^{2} − 6y)η^{3}, (−96yx − 18y^{3} + 18y^{2} − 24y)η^{2}ξ + (243y^{5}x − 243y^{4} + 72y^{3} + 48y^{2})η^{3}, 6yη^{2}ξ^{2} + ((576y + 384)x^{2} + (−81y^{3} −

306y^{2} − 168y + 96)x + 81y^{2} − 18y)η^{3}ξ + ((−720y^{2} − 192y)x + 450y^{3} − 60y^{2} − 48y)η^{4}).

M an example from the Macaulay2 tutorial: (−a^{3}d + b^{4}, −a^{3}c + ab^{3}, −ac^{3}d + ad^{4} + bc^{4} − bcd^{3}, −bc^{3}d^{2} + bd^{5} + c^{6} − c^{3}d^{3}, ac^{5} − ac^{2}d^{3} − b^{2}c^{3}d + b^{2}d^{4}, −a^{3}d^{3} + a^{2}c^{4} − a^{2}cd^{3} + b^{3}d^{3}, −a^{3}d^{3} + b^{3}c^{3}, −a^{3}cd^{2} + ab^{2}c^{3} − ab^{2}d^{3} + b^{3}cd^{2}, −a^{3}c^{2}d + a^{2}bc^{3} − a^{2}bd^{3} + b^{3}c^{2}d, −a^{3}bd^{2} + a^{3}c^{3}, a^{4}c^{2} − a^{3}b^{2}d).

Here is a table with some results.

The computations have been performed using as coefficient field ℤ_{32003}. The Hilbert-Driven and factoring Buchberger algorithms has not been used for the testing. The timings are only for the Gröbner bases and saturation computations. Since the algorithm is at the moment implemented in a prototypical CoCoAL version, the other (auxiliary) operations, done in high-level CoCoAL code, are quite inefficient. The final version will be implemented in Aldor using the PoSSo library, and the auxiliary operations will be efficiently implemented. We expect that the auxiliary operation will be negligible with respect to Gröbner basis computations and saturations.

Dec  Rad  Tot
Gerdt  20.16 s 3.82 s 23.98 s (15.32 s)
Butcher 25.69 s 0.66 s 26.35 s (2.97 s)
H1  43.05 s 15.47 s  58.52 s
H3  5.52 s 3.48 s  9.00 s
8_{3}  6.23 s 20.42 s  26.65 s
E2  17.37 s 1.84 s  19.21 s
E3  4.39 s 5.14 s  9.53 s
Logar  813.79 s 52.47 s  866.26 s
Oaku  2.39 s 1.60 s  3.99 s
M  0.59 s 0.37 s  0.96 s

We remark that the parenthesized values in the Gerdt and Butcher cases give the timing after a partial hand-factoring of the input. The utility of a factoring Buchberger algorithm is self-evident.

We have compared our algorithm with the macaulay2 implementation of the direct algorithm. For most examples we have not been able to compute the radical with the direct algorithm, while for the others the timings of our algorithm are better, see [CCT]. More experiment is needed, since further optimization of both algorithms may shift the balance. After the development of a C implementation of our algorithm we plan to compare the timings with the direct algorithm as then implemented in macaulay2.

Remark that in this binomial ideal all the computations have been with binomials; any other algorithm with any form of generic (or random) projection direction would have destroyed the format. At least for binomial ideals the advantage over algorithms using changes of coordinates is obvious. See [ES] for more information on binomial ideals.

5.6 An Example

We show how our algorithm behaves to find the radical of the example of D. Jaffe, reported in [EHV], in which their algorithm fails in characteristics 7. The example, that can be generalized in any characteristics, is (z^{7} − xyt^{5}, y^{4} − x^{3}t).

The example is of dimension 2, hence it is a complete intersection, and pure dimensional, but we want to forget it and compute the example completely. We will use block orderings, and DegRevLex in every block.

The set of generators is already Gröbner with respect to several orderings (DegRevLex, Lex with z > y > x > t, etc.).

We have to choose a variable to eliminate; if we choose z, then the ideal is already Gröbner and g = y^{4} − x^{3}t, hence no progress is made. If nilpotents exist, they are along the z direction.

Then we change elimination variable; if we choose x, (but with other variables it is not much different) then a Gröbner basis consists of

(x^{3}t − y^{4}, xyt^{5} − z^{7}, x^{2}z^{7} − y^{5}t^{4}, xz^{14} − y^{6}t^{9}, z^{21} − y^{7}t^{14})

hence g = z^{21} − y^{7}t^{14} = (z^{3} − yt^{2})^{7}, and its radical is z^{3} − yt^{2}.

Compute now the Gröbner basis of (z^{7} − xyt^{5}, y^{4} − x^{3}t, z^{3} − yt^{2}). It is composed of 17 elements, but we just need two: g = z^{3} − yt^{2} and h_{1} = xyt^{5} − y^{2}zt^{4} (we use the notation of section 5.3.1). We have g_{1} = yt^{5}.

Now we saturate (z^{7} − xyt^{5}, y^{4} − x^{3}t, z^{3} − yt^{2}) with respect to yt^{5}, and we obtain (z^{3} − yt^{2}, xt − yz, x^{2}z − y^{3}, xz^{2} − y^{2}t). We know now that this is the top-dimensional reduced component. If we saturate (z^{7} − xyu^{5}, y^{4} − x^{3}u) with it, we obtain 1, (this can be checked, instead of saturating, showing that the seventh power of every generator is inside the input ideal) hence no other component exists. The radical is hence (z^{3} − yt^{2}, xt − yz, x^{2}z − y^{3}, xz^{2} − y^{2}t).

104 CHAPTER 5. IDEAL DECOMPOSITIONS

Further developments

The results reached in this thesis has been resumed in the introduction. Here we describe briefly some open question and the prospects for the further development of this work.

Optimization of the Buchberger algorithm

The extension of the Hilbert-Driven techniques to the multigraded case leads to substantial improvements of the computational costs. The only drawback is the meager supply of naturally multigraded problems. A systematic examination on the possibility of multigraduations introduction in the basic operations has to be done. Moreover, since the description of the multigraded Poincaré series for high-type system of weights may be surprisingly complex, an ad hoc algorithm for the computation of only the multidegree(s) we are interested in should be developed. The algorithms now in use seems to offer only marginal prospects for improvements. The Dynamic Buchberger algorithm developed in the thesis is quite efficient on the binomial examples (but here ad hoc techniques [BCNR] are substantially better than the straightforward Gröbner basis computation), and it seems to have good prospects in three cases

problems with an high number of polynomials whose support is small;

large, yet unsolved problems, where a careful (automatic) choice of the ordering may give a chance of success.

A yet unsolved problem is the instability of the heuristics based on Hilbert Function considerations. Further testing is necessary after a new, state-of-the-art implementation.

Module implementation through embedding

The relative efficiency of the embedding approach with respect to the other approaches has still to be assessed. This comparison should be done after the full development of the polynomial arithmetic techniques of Capani PhD. thesis [C]. An open opportunity is the development of a dynamic version of the resolution algorithm which may minimize the size of the Gröbner bases of syzygy modules.

Optimization of ideal/module operations

For the transporter and saturation cases, we have developed new algorithms derived from the tag variable module intersection algorithm (Hilbert-Driven) that seem to give the best performances, but an exhaustive comparison of the different algorithms has still to be done, since the interaction of their variants gives a quite high number of different algorithms (more than hundred for the saturation). If further information (e. g. we know I + J or at least its Hilbert function) are available, the double Hilbert driven algorithm sketched in chapter 4 promises to be quite efficient. Further experiments are needed.

Ideal decomposition

The ideal decomposition algorithm discussed in this thesis has to be carefully compared to the algorithm in [EHV] and [LS]. Moreover, the utility of an a priori equidimensional decomposition has to be assessed for primary decompositions. Some comparison with the algorithms implemented in Singular [Singular] support this idea. It would be interesting to develop an integration of the two algorithms.

Bibliography

[A] T.M. Apostol, Introduction to Analytic Number Theory, Springer Verlag, 1976.

[AGK] B. Amrhein, O. Gloor, W. Küchlin, On the Walk, Theoretical Computer science 187 pp.179-202, 1997.

[AM] M.F. Atiyah, I.G. Macdonald, Introduction to Commutative Algebra, Addison-Wesley, 1969.

[AMR] M. Alonso, T. Mora, M. Raimondo, Local decomposition algorithms, AAECC90, Tokyo, LNCS 508, pp.208-211, 1990.

[AT] D. Attardi, and C. Traverso, A strategy accurate parallel Buchberger Algorithm, Journal of Symbolic Computation, 21, 4-6, pp.411-425, 1996.

[BGS] D. Bayer, A. Galligo, M. Stillman, Gröbner bases and extensions of scalars, in: D. Eisenbud, L. Robbiano, Computational methods in Algebraic Geometry and Commutative Algebra, Symposia Mathematica 24, 1993.

[BS] D. Bayer and M. Stillman, Computation of Hilbert functions, Journal of Symbolic Computation 14, pp 31-50, 1992.

[BS2] D. Bayer and M. Stillman, A theorem on refining division orders by the reverse lexicographic oredering, Duke J. Math. 55, pp.321-328, 1987.

[BM] D. Bayer and D. Mumford, What can be computed in Algebraic Geometry?, Cambridge University Press, Symposia Math. XXXIV pp.1-48, 1992.

[BW] T. Becker and V. Weispfenning, A computational approach to Commutative Algebra, Graduate Text in Mathematics, Springer Verlag, 1992.

[B] A. M. Bigatti,Computation of Hilbert-Poincaré Series, Journal of Pure and Applied Algebra, 119, 3, pp.237-253, 1997.

[BCR] A.M. Bigatti, M. Caboara and L. Robbiano On the Computation of Hilbert-Poincarè Series, AAECC 2, pp.21-33, 1991.

[BCRT] A.M. Bigatti, P. Conti, L. Robbiano, and C. Traverso, A “Divide and conquer” algorithm for Hilbert-Poincaré series, multiplicity and dimension of monomial ideals, Proceedings of AAECC-10 LNCS 673, pp.76-88, Springer, 1992.

[BCNR] A.M. Bigatti, A. Capani, G. Niesi and L. Robbiano, Hilbert Poincarè Series and Eliminations problems, submitted, 1998.

[BCNR] A.M. Bigatti, R. La Scala and L. Robbiano, Computing Toric Ideals, submitted, 1998.

[BGK] W. Boege, R. Gebauer, H. Kredel, Some examples for solving systems of algebraic equations by calculating Gröbner bases, Journal of Symbolic Computation 2, pp.83-89, 1987.

[Bu] B. Buchberger, Gröbner bases: An algorithmic method in polynomial ideal theory, In: Bose, N.K.(ed) Multidimensional Systems Theory, Riedel, Dordrecht, pp.184-232, 1985.

[Ca] M. Caboara, A Dynamic Algorithm for Gröbner basis computation, ISSAC93, Kiev, pp.275-283, 1993.

[Ca1] M. Caboara, A modified Buchberger Algorithm for resolutions, Preprint (1997)

[CDR] M. Caboara, G. De Dominicis and L. Robbiano, Multigraded Hilbert functions and Buchberger algorithm, Proceeding of the ISSAC96 Conference, Zurich, pp.72-85, 1996.

[CS] M. Caboara and M. Silvestri, Classification of compatible module orderings, Submitted (1997).

[CS1] M. Caboara and M. Silvestri Compatible module orderings, ISSAC’96 Poster Session, pp.17-22, 1996.

[CT1] M. Caboara and C. Traverso, How to compute an intersection, Preprint (1997).

[CCT] M. Caboara, P. Conti, and C. Traverso, Yet Another Ideal Decomposition Algorithm, AAECC-12, Springer LNCS 1255, pp.39-54, 1997.

[C] A. Capani, Phd Thesis, Dipartimento di Informatica, Università di Genova, in prep. (1997).

[COCOA] A. Capani, G. Niesi and L. Robbiano CoCoA, a system for doing Computations in Commutative Algebra, Dipartimento di Matematica, Università di Genova, Available via

             anonymous ftp from cocoa.dima.unige.it. Web page http://cocoa.dima.unige.it.

[CN] A. Capani and G. Niesi,framework for a family of Buchberger-like algorithms, in Gröbner bases and Applications (Proceedings of the 33 Years of Gröbner bases), Buchberger and Winkler eds., Cambridge University Press, vol 251, 338-350.

[CDNR] A. Capani, G. de Dominicis, G. Niesi and L. Robbiano, Computing Minimal Resolutions, Journal of Pure and Applied Algebra, Vol. 117-118, pp.105-117, 1997.

[CSi] G. Carra’ Ferro and W.Y. Sit, On term orderings and rankings, in Colloquia, Computational Albegra, Lecture Notes Pure and Applied Math. 151, pp.31-77, Dekker, NewYork, 1994.

[CT] P. Conti, C. Traverso, A Case of Automatic Theorem Proving in Euclidean Geometry: the Maclane 8_{3} Theorem, Proc. AAECC-11 LNCS 948, pp.183-193, 1995.

[CLS] D. Cox, J. Little and D. O’Shea, Ideal, Varieties and Algorithms, Undergraduate Text in Mathematics, Springer Verlag, 1995.

[D] J.H. Davenport, Polynomial factorization, MEGA-96, J. Pure Appl. Algebra, pp.117-118, 1996.

[E] D. Eisenbud, Commutative Algebra with a View Toward Algebraic Geometry, Springer Verlag, Graduate Text in Mathematics, 1994.

[EHV] D. Eisenbud, C. Huneke and W. Vasconcelos, Direct methods for primary decomposition, Inventiones Math, 110, pp.207-235, 1992.

BIBLIOGRAPHY 109

[ES] D. Eisenbud and B. Sturmfels, Binomial ideals, Duke Math. J. 84, pp.1-45 1996.

[FGLM] J.C. Faugère, P. Gianni, D. Lazard, T. Mora, Efficient computation of zero-dimensional Gröbner bases by change of ordering, Journal of Symbolic Computation, 16(4), pp.329-344, 1993.

[G] P. Gianni, Properties of Gröbner bases under specialization, Eurocal 1987, LNCS 378, pp.293-297, 1988.

[GTZ] P. Gianni, B. Trager and G. Zacharias, Gröbner bases and primary decomposition of polynomial ideals, Journal of Symbolic Computation, 6/2/3 pp.149-167, 1988.

[GMNRT] A. Giovini, T. Mora, G. Niesi, L. Robbiano and C. Traverso, ”One sugar cube, please”, or Selection strategies in the Buchberger Algorithm, ISSAC91, ACN, 1991.

[GM] R. Gebauer and M. Möller, ( On an installation of the Buchberger algorithm, Journal of Symbolic Computation, 6/2/3 pp.275-286, 1988.

[GGMNPPSS] H. Grassman, G.M. Greuel, B. Martin, W. Neumann, G.Pfister, W. Pohl, H. Schonemann and T. Siebert, Standard bases, syzygies and their implementation in SINGULAR, Preprint, (1997).

[GS] Gritzmann, P. and B. Sturmfels (1990), Minkowski addition of polytopes: computational complexity and applications to Grobner bases, SIAM-J.-Discrete-Math, 6, no. 2, pp.246-269, 1993.

[K1] M. Kalkbrener, Solving systems of algebraic equations by using Gröbner bases, Eurocal 1987, LNCS 378, pp.282-292, 1988.

[K2] M. Kalkbrener, A generalized euclidean algorithm for computing triangular representations of algebraic varieties, Journal of Symbolic Computation, 15, pp.143-167, 1993.

[K3] M. Kalkbrener, Prime decomposition of radicals in polynomial rings, Journal of Symbolic Computation, 18, pp.365-372, 1994.

[Ls] R. La Scala, An algorithm for complexes, Proceedings of ISSAC’94, pp.264-268, 1994.

[LS] R. La Scala and M. Stillman, Strategies for computing minimal free resolutions, Preprint (1997).

[L] D. Lazard, A new method for solving algebraic systems of positive dimension, Discr. App.Math, 33, pp.147-160,1991.

[M] Matsumura (1986), Commutative Algebra, Cambridge University Press, Cambridge, 1970.

[Metc] F. Mora la dimostrazione della complessita’ della GB + alg. omogeneo.

[MM] H.M. Möller and F. Mora, New constructive methods in classical ideal theory, J. Algebra 100, pp.138-178, 1986.

[MMT] T. Mora, M. Möller and C. Traverso, Gröbner basis computation using syzygies, ISSAC ’91, 1991.

[Mo] T. Mora, An introduction to commutative and noncommutative Gröbner bases, Theoretical Computer Science, 134, no.1, pp.131-173, 1992.

[MR] F. Mora and L. Robbiano, The Gröbner fan of an Ideal, Journal of Symbolic Computation, 6, no.2-3, pp.183-208, 1988.

110 BIBLIOGRAPHY

[Mu] D. Mumford, Lectures on Curves on an Algebraic Surface, Annals of Math. Studies, 1966.

[PoSSo] Esprit project n. 6846 Posso.

[Ri] C. Riquier, Les systèmes d’équation aux d´‘erivées partielles, Gauthier-Villars, Paris, 1910.

[R1] L. Robbiano, Term orderings on the polynomial rings, EUROCAL ’85, SpringerLNCS 204, pp.513-517, 1985.

[R2] L. Robbiano, Dispense, (1997).

[R3] L. Robbiano, Introduction to the theory of Hilbert functions, In Anthony V. Geramita, Ed., The Curves Seminar at Queen’s, vol VIII, pp.B1-B26, Kingston, Ontario, Queen’s Papers in Pure and Applied Mathematics, No. 85, 1990.

[Ro] Rothenberg, Linear Programming, New York, Elsevier-North Holland, 1979.

[RR] C.J. Rust and G.J. Reid, Rankings of partials derivatives, Proceedings of ISSAC’97, pp.9-16, 1997.

[Ru] C.J. Rust, The classification of Rankings of partials derivatives, PhD thesis, in prep. (1997).

[RV] R. Robbiano and G. Valla, Hilbert Poincarè Series of Bigraded Algebras, Preprint, 1998.

[Ru2] C.J. Rust, On the classification of Rankings of partials derivatives, May be downloaded

             from http://www.math.uchicago.edu/~rust/orderings.ps.

[S] R.P. Stanley, Combinatorics and Commutative Algebra, Second Edition, Birkhäuser, PM 41, 1996.

[Singular] G.M. Greuel, G. Pfister and H. Schonemann, Singular, A Computer Algebra System for Singularity Theory, Algebraic Geometry and Commutative Algebra. The Singular system and its user manual and tutorials are available by anonimous ftp from the web page

             ftp://www.mathematik.uni-kl.de/pub/Math/Singular.

[Sh] F.O. Schreyer, Die Berchnung von Syzygien mit dem verallgemeinerten Weierstrass’schen Divisionsatz, Diplomarbeit, Hamburg, 1980.

[Si] Th. Siebert, On strategies and implementations for computations of free resolutions, Preprint Nr. 8 des Zentrums fuer Computeralgebra, Universitaet Kaiserslautern, 1996.

[Sv] M. Silvestri, Thesis, Dipartimento di matematica, Università degli studi di Pisa, (1993).

[Sp] D.A. Spear, A constructive approach to commutative ring theory, In: Proc, MACSYMA User’s conference, NASA CP-2012, pp.369-376, 1989.

[St] B. Sturmfels, Dynamic version of the Buchberger Algorithm, Preprint (1989).

[Sw] F. Schwartz, Monomial orderings and Gröbner Bases, ACM SIGSAM Bullettin 25, No 1, pp.10-23, 1991.

[SY] T. Shimoyama and K. Yokoyama, Localization and primary decomposition of polynomial ideals, Journal of Symbolic Computation, 22, pp.247-277, 1996.

[T] C. Traverso, Hilbert Functions and the Buchberger Algorithm, Journal of Symbolic Computation, 22-4 pp.355-376, 1996.

[TD] C. Traverso and L. Donati, Experimenting the Gröbner basis algorithm with the ALPI system, ISSAC89, ACM press, NewYork, pp.192-198, 1989.

[Th] J.M. Thomas, Matrices of Integers Ordering Derivatives Trans. Amer. Math Soc. 33, pp.389-410, 1931.

[V] W.V. Vasconcelos, Jacobian matrices and constructions in Algebra, AAECC-9, LNCS 539, pp.48-64, 1991.

[Wa] B. Wall, On the computation of syzygies, ACM SIGSAM Bullettin 23/4 pp.5-14, 1989.

[W] V. Weispfenning, Admissible orders and linear forms, ACM SIGSAM Bullettin 21/2, pp.16-18, 1987.

[W1] V. Weispfenning, Differential Term Orderings, ACM SIGSAM Bullettin 21/2, pp.16-18, 1992.

[ZS] O. Zariski, and P. Samuel Commutative Algebra, vol I-II, New York, Van Nostrand, 1958-1960.